From a3fc1217e636af16e3e80595b0ec6ec2975a70cf Mon Sep 17 00:00:00 2001 From: glasstiger Date: Fri, 16 Oct 2026 13:40:40 +0100 Subject: [PATCH 1/4] fix(nodejs): complete TCP JWK authentication support Accept full P-256 private JWKs through Sender and SenderOptions factories, retaining TCP/TCPS credential precedence and rejecting the new extra option on unsupported transports.\n\nUse SHA256 for EC challenge signing, verify factory handshakes with generated keys, pin the published declarations, and refresh the documentation.\n\nFixes #72 --- README.md | 24 ++++++ docs/assets/hierarchy.js | 2 +- docs/assets/search.js | 2 +- ..._browser-client.QwpBatchTooLargeError.html | 4 +- ..._questdb_browser-client.QwpBindValues.html | 12 +-- ...lient.QwpBrowserSessionBootstrapError.html | 10 +-- ..._questdb_browser-client.QwpByteReader.html | 4 +- ..._questdb_browser-client.QwpByteWriter.html | 4 +- .../_questdb_browser-client.QwpClient.html | 12 +-- ...b_browser-client.QwpClientClosedError.html | 4 +- ...-client.QwpDurableAckUnavailableError.html | 10 +-- ...questdb_browser-client.QwpEgressQuery.html | 46 ++++++------ ...r-client.QwpEgressQueryAbandonedError.html | 4 +- ...ient.QwpEgressQueryCancelTimeoutError.html | 4 +- ...db_browser-client.QwpEgressQueryError.html | 4 +- ...ser-client.QwpEgressQueryTimeoutError.html | 4 +- ...estdb_browser-client.QwpEgressSession.html | 18 ++--- ...er-client.QwpEgressSessionClosedError.html | 4 +- ...estdb_browser-client.QwpFailoverError.html | 4 +- ...er-client.QwpIngressAckAbandonedError.html | 4 +- ...db_browser-client.QwpIngressNackError.html | 4 +- ...r-client.QwpIngressSessionClosedError.html | 4 +- ...ent.QwpMemoryReplayAppendTimeoutError.html | 4 +- ...ent.QwpMemoryReplayBatchTooLargeError.html | 4 +- ...ent.QwpMemoryReplayFrameTooLargeError.html | 4 +- ...ser-client.QwpPoolAcquireTimeoutError.html | 4 +- ...b_browser-client.QwpPoolResourceError.html | 4 +- ...estdb_browser-client.QwpProtocolError.html | 4 +- ..._questdb_browser-client.QwpQueryLease.html | 8 +- ...ser-client.QwpReconnectExhaustedError.html | 4 +- ...owser-client.QwpReplayDictionaryError.html | 4 +- ...t.QwpReplayDictionaryPersistenceError.html | 4 +- ...browser-client.QwpReplayRejectedError.html | 4 +- ...questdb_browser-client.QwpResultBatch.html | 4 +- ..._browser-client.QwpResultBatchDecoder.html | 10 +-- ...tdb_browser-client.QwpResultBatchView.html | 10 +-- ...db_browser-client.QwpResultColumnView.html | 24 +++--- ...estdb_browser-client.QwpResultRowView.html | 16 ++-- ...b_browser-client.QwpRoleMismatchError.html | 10 +-- ...tdb_browser-client.QwpSendClosedError.html | 4 +- .../_questdb_browser-client.QwpSendError.html | 4 +- ...db_browser-client.QwpSendTimeoutError.html | 4 +- .../_questdb_browser-client.QwpSender.html | 32 ++++---- ...ser-client.QwpSenderCloseTimeoutError.html | 4 +- ...db_browser-client.QwpSymbolDictionary.html | 8 +- ...questdb_browser-client.QwpTableBuffer.html | 12 +-- ...questdb_browser-client.QwpTableWriter.html | 8 +- ...QwpUnrecoverableReplayDictionaryError.html | 4 +- ...uestdb_browser-client.QwpUpgradeError.html | 10 +-- ...stdb_browser-client.QwpWriterRowError.html | 4 +- .../_questdb_nodejs-client.HttpTransport.html | 12 +-- ...b_nodejs-client.QwpBatchTooLargeError.html | 4 +- .../_questdb_nodejs-client.QwpBindValues.html | 12 +-- .../_questdb_nodejs-client.QwpByteReader.html | 4 +- .../_questdb_nodejs-client.QwpByteWriter.html | 4 +- .../_questdb_nodejs-client.QwpClient.html | 12 +-- ...db_nodejs-client.QwpClientClosedError.html | 4 +- ...-client.QwpDurableAckUnavailableError.html | 10 +-- ..._questdb_nodejs-client.QwpEgressQuery.html | 46 ++++++------ ...s-client.QwpEgressQueryAbandonedError.html | 4 +- ...ient.QwpEgressQueryCancelTimeoutError.html | 4 +- ...tdb_nodejs-client.QwpEgressQueryError.html | 4 +- ...ejs-client.QwpEgressQueryTimeoutError.html | 4 +- ...uestdb_nodejs-client.QwpEgressSession.html | 18 ++--- ...js-client.QwpEgressSessionClosedError.html | 4 +- ...uestdb_nodejs-client.QwpFailoverError.html | 4 +- ...js-client.QwpIngressAckAbandonedError.html | 4 +- ...tdb_nodejs-client.QwpIngressNackError.html | 4 +- ...s-client.QwpIngressSessionClosedError.html | 4 +- ...ent.QwpMemoryReplayAppendTimeoutError.html | 4 +- ...ent.QwpMemoryReplayBatchTooLargeError.html | 4 +- ...ent.QwpMemoryReplayFrameTooLargeError.html | 4 +- ...ejs-client.QwpPoolAcquireTimeoutError.html | 4 +- ...db_nodejs-client.QwpPoolResourceError.html | 4 +- ...uestdb_nodejs-client.QwpProtocolError.html | 4 +- .../_questdb_nodejs-client.QwpQueryLease.html | 8 +- ...ejs-client.QwpReconnectExhaustedError.html | 4 +- ...odejs-client.QwpReplayDictionaryError.html | 4 +- ...t.QwpReplayDictionaryPersistenceError.html | 4 +- ..._nodejs-client.QwpReplayRejectedError.html | 4 +- ...ient.QwpReplayStoreAppendTimeoutError.html | 6 +- ...ient.QwpReplayStoreBatchTooLargeError.html | 6 +- ...-client.QwpReplayStoreCheckpointError.html | 6 +- ...-client.QwpReplayStoreCorruptionError.html | 6 +- ...tdb_nodejs-client.QwpReplayStoreError.html | 6 +- ...nodejs-client.QwpReplayStoreFullError.html | 6 +- ...js-client.QwpReplayStoreLockLostError.html | 6 +- ...ent.QwpReplayStoreLockUnprovableError.html | 6 +- ...dejs-client.QwpReplayStoreLockedError.html | 6 +- ...client.QwpReplayStoreQuarantinedError.html | 6 +- ...nt.QwpReplayStoreSegmentTooLargeError.html | 6 +- ..._questdb_nodejs-client.QwpResultBatch.html | 4 +- ...b_nodejs-client.QwpResultBatchDecoder.html | 10 +-- ...stdb_nodejs-client.QwpResultBatchView.html | 10 +-- ...tdb_nodejs-client.QwpResultColumnView.html | 24 +++--- ...uestdb_nodejs-client.QwpResultRowView.html | 16 ++-- ...db_nodejs-client.QwpRoleMismatchError.html | 10 +-- ...stdb_nodejs-client.QwpSendClosedError.html | 4 +- .../_questdb_nodejs-client.QwpSendError.html | 4 +- ...tdb_nodejs-client.QwpSendTimeoutError.html | 4 +- .../_questdb_nodejs-client.QwpSender.html | 32 ++++---- ...ejs-client.QwpSenderCloseTimeoutError.html | 4 +- ...tdb_nodejs-client.QwpSymbolDictionary.html | 8 +- ..._questdb_nodejs-client.QwpTableBuffer.html | 12 +-- ..._questdb_nodejs-client.QwpTableWriter.html | 8 +- ...js-client.QwpUdpDatagramTooLargeError.html | 4 +- ...QwpUnrecoverableReplayDictionaryError.html | 4 +- ...questdb_nodejs-client.QwpUpgradeError.html | 10 +-- ...nodejs-client.QwpVersionMismatchError.html | 10 +-- ...estdb_nodejs-client.QwpWriterRowError.html | 4 +- .../_questdb_nodejs-client.Sender.html | 65 ++++++++-------- ..._questdb_nodejs-client.SenderBufferV1.html | 38 +++++----- ..._questdb_nodejs-client.SenderBufferV2.html | 38 +++++----- ..._questdb_nodejs-client.SenderBufferV3.html | 38 +++++----- .../_questdb_nodejs-client.SenderOptions.html | 22 ++++-- .../_questdb_nodejs-client.TcpTransport.html | 12 +-- ...questdb_nodejs-client.UndiciTransport.html | 12 +-- ...ent.addQwpDurableAckWebSocketProtocol.html | 2 +- .../_questdb_browser-client.binary.html | 2 +- .../_questdb_browser-client.bool.html | 2 +- ...ser-client.bootstrapQwpBrowserSession.html | 2 +- .../_questdb_browser-client.byte.html | 2 +- .../_questdb_browser-client.char.html | 2 +- .../_questdb_browser-client.concatBytes.html | 2 +- ...rowser-client.connectQwpBrowserClient.html | 2 +- ...rowser-client.connectQwpBrowserEgress.html | 2 +- ...rowser-client.connectQwpBrowserSender.html | 2 +- ...browser-client.createQwpBrowserClient.html | 2 +- ...browser-client.createQwpBrowserSender.html | 2 +- ...r-client.createQwpDataLossSenderError.html | 2 +- ...createQwpProtocolViolationSenderError.html | 2 +- ...b_browser-client.createQwpSenderError.html | 2 +- .../_questdb_browser-client.date.html | 2 +- .../_questdb_browser-client.decimal128.html | 2 +- .../_questdb_browser-client.decimal256.html | 2 +- .../_questdb_browser-client.decimal64.html | 2 +- ...owser-client.decodeQwpContentEncoding.html | 2 +- ...browser-client.decodeQwpEgressMessage.html | 2 +- ...questdb_browser-client.decodeQwpFrame.html | 2 +- ...owser-client.decodeQwpIngressResponse.html | 2 +- ...ser-client.decodeQwpIngressServerInfo.html | 2 +- ...decodeQwpIngressSymbolDictionaryDelta.html | 2 +- ...uestdb_browser-client.decodeQwpVarint.html | 2 +- .../_questdb_browser-client.decodeUtf8.html | 2 +- ...browser-client.decompressQwpZstdFrame.html | 2 +- ...r-client.defaultQwpSenderErrorHandler.html | 2 +- ...db_browser-client.designatedTimestamp.html | 2 +- .../_questdb_browser-client.double.html | 2 +- .../_questdb_browser-client.doubleArray.html | 2 +- ...rowser-client.encodeQwpAcceptEncoding.html | 2 +- ...questdb_browser-client.encodeQwpBinds.html | 2 +- ...uestdb_browser-client.encodeQwpCancel.html | 2 +- ...uestdb_browser-client.encodeQwpCredit.html | 2 +- ...r-client.encodeQwpDurableAckPollFrame.html | 2 +- ...questdb_browser-client.encodeQwpFrame.html | 2 +- ...estdb_browser-client.encodeQwpGorilla.html | 2 +- ...er-client.encodeQwpIngressCommitFrame.html | 2 +- ..._browser-client.encodeQwpIngressFrame.html | 2 +- ...encodeQwpIngressSymbolDictionaryFrame.html | 2 +- ..._browser-client.encodeQwpQueryRequest.html | 2 +- ...uestdb_browser-client.encodeQwpVarint.html | 2 +- .../_questdb_browser-client.encodeUtf8.html | 2 +- ...uestdb_browser-client.flattenQwpArray.html | 2 +- .../_questdb_browser-client.float32.html | 2 +- .../_questdb_browser-client.float64.html | 2 +- .../_questdb_browser-client.geohash.html | 2 +- .../_questdb_browser-client.int32.html | 2 +- .../_questdb_browser-client.int64.html | 2 +- .../_questdb_browser-client.ipv4.html | 2 +- ...ient.isQwpDurableAckWebSocketProtocol.html | 2 +- .../_questdb_browser-client.long.html | 2 +- .../_questdb_browser-client.long256.html | 2 +- .../_questdb_browser-client.longArray.html | 2 +- ...er-client.qwpDefaultSenderErrorPolicy.html | 2 +- ...questdb_browser-client.qwpGorillaSize.html | 2 +- ...browser-client.qwpSenderErrorCategory.html | 2 +- ..._questdb_browser-client.qwpVarintSize.html | 2 +- ..._questdb_browser-client.readQwpVarint.html | 2 +- ...db_browser-client.readQwpVarintNumber.html | 2 +- .../_questdb_browser-client.short.html | 2 +- .../_questdb_browser-client.symbol.html | 2 +- .../_questdb_browser-client.timestamp.html | 2 +- .../_questdb_browser-client.utf8Length.html | 2 +- .../_questdb_browser-client.uuid.html | 2 +- .../_questdb_browser-client.varchar.html | 2 +- ...db_browser-client.writeQwpFrameHeader.html | 2 +- ...questdb_browser-client.writeQwpVarint.html | 2 +- ...ent.addQwpDurableAckWebSocketProtocol.html | 2 +- ...js-client.bigintToTwosComplementBytes.html | 2 +- .../_questdb_nodejs-client.binary.html | 2 +- .../_questdb_nodejs-client.bool.html | 2 +- .../_questdb_nodejs-client.byte.html | 2 +- .../_questdb_nodejs-client.char.html | 2 +- .../_questdb_nodejs-client.concatBytes.html | 2 +- ...db_nodejs-client.connectQwpNodeClient.html | 4 +- ...db_nodejs-client.connectQwpNodeEgress.html | 2 +- ...db_nodejs-client.connectQwpNodeSender.html | 2 +- ...nodejs-client.connectQwpNodeUdpSender.html | 2 +- .../_questdb_nodejs-client.createBuffer.html | 2 +- ...s-client.createQwpDataLossSenderError.html | 2 +- ...tdb_nodejs-client.createQwpNodeClient.html | 4 +- ...tdb_nodejs-client.createQwpNodeSender.html | 2 +- ..._nodejs-client.createQwpNodeUdpSender.html | 2 +- ...createQwpProtocolViolationSenderError.html | 2 +- ...db_nodejs-client.createQwpSenderError.html | 2 +- ...questdb_nodejs-client.createTransport.html | 2 +- .../_questdb_nodejs-client.date.html | 2 +- .../_questdb_nodejs-client.decimal128.html | 2 +- .../_questdb_nodejs-client.decimal256.html | 2 +- .../_questdb_nodejs-client.decimal64.html | 2 +- ...odejs-client.decodeQwpContentEncoding.html | 2 +- ..._nodejs-client.decodeQwpEgressMessage.html | 2 +- ..._questdb_nodejs-client.decodeQwpFrame.html | 2 +- ...odejs-client.decodeQwpIngressResponse.html | 2 +- ...ejs-client.decodeQwpIngressServerInfo.html | 2 +- ...decodeQwpIngressSymbolDictionaryDelta.html | 2 +- ...questdb_nodejs-client.decodeQwpVarint.html | 2 +- .../_questdb_nodejs-client.decodeUtf8.html | 2 +- ..._nodejs-client.decompressQwpZstdFrame.html | 2 +- ...s-client.defaultQwpSenderErrorHandler.html | 2 +- ...tdb_nodejs-client.designatedTimestamp.html | 2 +- .../_questdb_nodejs-client.double.html | 2 +- .../_questdb_nodejs-client.doubleArray.html | 2 +- ...nodejs-client.encodeQwpAcceptEncoding.html | 2 +- ..._questdb_nodejs-client.encodeQwpBinds.html | 2 +- ...questdb_nodejs-client.encodeQwpCancel.html | 2 +- ...questdb_nodejs-client.encodeQwpCredit.html | 2 +- ...s-client.encodeQwpDurableAckPollFrame.html | 2 +- ..._questdb_nodejs-client.encodeQwpFrame.html | 2 +- ...uestdb_nodejs-client.encodeQwpGorilla.html | 2 +- ...js-client.encodeQwpIngressCommitFrame.html | 2 +- ...b_nodejs-client.encodeQwpIngressFrame.html | 2 +- ...encodeQwpIngressSymbolDictionaryFrame.html | 2 +- ...b_nodejs-client.encodeQwpQueryRequest.html | 2 +- ...questdb_nodejs-client.encodeQwpVarint.html | 2 +- .../_questdb_nodejs-client.encodeUtf8.html | 2 +- ...questdb_nodejs-client.flattenQwpArray.html | 2 +- .../_questdb_nodejs-client.float32.html | 2 +- .../_questdb_nodejs-client.float64.html | 2 +- .../_questdb_nodejs-client.geohash.html | 2 +- .../_questdb_nodejs-client.int32.html | 2 +- .../_questdb_nodejs-client.int64.html | 2 +- .../_questdb_nodejs-client.ipv4.html | 2 +- ...ient.isQwpDurableAckWebSocketProtocol.html | 2 +- .../_questdb_nodejs-client.long.html | 2 +- .../_questdb_nodejs-client.long256.html | 2 +- .../_questdb_nodejs-client.longArray.html | 2 +- ...odejs-client.parseQwpNodeClientConfig.html | 2 +- ...js-client.qwpDefaultSenderErrorPolicy.html | 2 +- ..._questdb_nodejs-client.qwpGorillaSize.html | 2 +- ..._nodejs-client.qwpSenderErrorCategory.html | 2 +- .../_questdb_nodejs-client.qwpVarintSize.html | 2 +- .../_questdb_nodejs-client.readQwpVarint.html | 2 +- ...tdb_nodejs-client.readQwpVarintNumber.html | 2 +- ..._nodejs-client.retryQwpNodeOrphanSlot.html | 2 +- .../_questdb_nodejs-client.short.html | 2 +- .../_questdb_nodejs-client.symbol.html | 2 +- .../_questdb_nodejs-client.timestamp.html | 2 +- .../_questdb_nodejs-client.utf8Length.html | 2 +- .../_questdb_nodejs-client.uuid.html | 2 +- .../_questdb_nodejs-client.varchar.html | 2 +- ...tdb_nodejs-client.writeQwpFrameHeader.html | 2 +- ..._questdb_nodejs-client.writeQwpVarint.html | 2 +- docs/hierarchy.html | 2 +- docs/index.html | 9 +++ ..._questdb_browser-client.QwpArrayValue.html | 6 +- ..._browser-client.QwpBrowserAuthContext.html | 4 +- ...rowser-client.QwpBrowserClientOptions.html | 8 +- ...rowser-client.QwpBrowserEgressOptions.html | 42 +++++------ ...owser-client.QwpBrowserIngressOptions.html | 58 +++++++------- ...ent.QwpBrowserSessionBootstrapOptions.html | 12 +-- ...ient.QwpBrowserSessionBootstrapResult.html | 4 +- ...ser-client.QwpBrowserWebSocketOptions.html | 16 ++-- ...b_browser-client.QwpCacheResetMessage.html | 4 +- ...tdb_browser-client.QwpClientFactories.html | 8 +- ...estdb_browser-client.QwpClientMetrics.html | 4 +- ...b_browser-client.QwpClientPoolOptions.html | 18 ++--- ...uestdb_browser-client.QwpColumnBuffer.html | 10 +-- ...browser-client.QwpConnectionCloseInfo.html | 4 +- ...uestdb_browser-client.QwpDecimalValue.html | 4 +- ...er-client.QwpEgressFailoverResetEvent.html | 8 +- ...estdb_browser-client.QwpEgressMetrics.html | 4 +- ..._browser-client.QwpEgressQueryOptions.html | 18 ++--- ...wser-client.QwpEgressReconnectOptions.html | 10 +-- ...tdb_browser-client.QwpEgressViewQuery.html | 6 +- ...uestdb_browser-client.QwpEncodedBinds.html | 4 +- ...tdb_browser-client.QwpExecDoneMessage.html | 4 +- ...tdb_browser-client.QwpFailoverAttempt.html | 4 +- .../_questdb_browser-client.QwpFrame.html | 4 +- ...questdb_browser-client.QwpFrameHeader.html | 4 +- ...uestdb_browser-client.QwpGeohashValue.html | 4 +- ...b_browser-client.QwpHandshakeMetadata.html | 16 ++-- ...rowser-client.QwpIngressEncodeOptions.html | 6 +- ...b_browser-client.QwpIngressErrorEvent.html | 6 +- ...stdb_browser-client.QwpIngressMetrics.html | 12 +-- ...rowser-client.QwpIngressProgressEvent.html | 4 +- ...ser-client.QwpIngressReconnectOptions.html | 12 +-- ...tdb_browser-client.QwpIngressResponse.html | 4 +- ...b_browser-client.QwpIngressServerInfo.html | 4 +- ...lient.QwpIngressSymbolDictionaryDelta.html | 4 +- ..._browser-client.QwpIngressTableResult.html | 4 +- ...uestdb_browser-client.QwpLong256Value.html | 4 +- ...browser-client.QwpPoolSlotReservation.html | 4 +- ...b_browser-client.QwpQueryErrorMessage.html | 4 +- ...uestdb_browser-client.QwpQueryRequest.html | 12 +-- ...stdb_browser-client.QwpReconnectEvent.html | 8 +- ...browser-client.QwpResourcePoolMetrics.html | 4 +- ...db_browser-client.QwpResultArrayValue.html | 4 +- ..._browser-client.QwpResultBatchMessage.html | 6 +- ...uestdb_browser-client.QwpResultColumn.html | 4 +- ..._browser-client.QwpResultColumnSchema.html | 4 +- ...db_browser-client.QwpResultEndMessage.html | 4 +- ...stdb_browser-client.QwpRoutingOptions.html | 6 +- ...questdb_browser-client.QwpSenderError.html | 8 +- ...-client.QwpSenderErrorResponseContext.html | 4 +- ...estdb_browser-client.QwpSenderMetrics.html | 8 +- ...b_browser-client.QwpServerInfoMessage.html | 4 +- ...questdb_browser-client.QwpSymbolValue.html | 4 +- ...browser-client.QwpUpgradeErrorDetails.html | 8 +- .../_questdb_browser-client.QwpUuidValue.html | 4 +- ...estdb_browser-client.QwpWebSocketLike.html | 16 ++-- ...uestdb_browser-client.QwpWriterColumn.html | 8 +- .../_questdb_nodejs-client.QwpArrayValue.html | 6 +- ...db_nodejs-client.QwpCacheResetMessage.html | 4 +- ...stdb_nodejs-client.QwpClientFactories.html | 8 +- ...uestdb_nodejs-client.QwpClientMetrics.html | 4 +- ...db_nodejs-client.QwpClientPoolOptions.html | 18 ++--- ...questdb_nodejs-client.QwpColumnBuffer.html | 10 +-- ..._nodejs-client.QwpConnectionCloseInfo.html | 4 +- ...questdb_nodejs-client.QwpDecimalValue.html | 4 +- ...js-client.QwpEgressFailoverResetEvent.html | 8 +- ...uestdb_nodejs-client.QwpEgressMetrics.html | 4 +- ...b_nodejs-client.QwpEgressQueryOptions.html | 18 ++--- ...dejs-client.QwpEgressReconnectOptions.html | 10 +-- ...stdb_nodejs-client.QwpEgressViewQuery.html | 6 +- ...questdb_nodejs-client.QwpEncodedBinds.html | 4 +- ...stdb_nodejs-client.QwpExecDoneMessage.html | 4 +- ...stdb_nodejs-client.QwpFailoverAttempt.html | 4 +- .../_questdb_nodejs-client.QwpFrame.html | 4 +- ..._questdb_nodejs-client.QwpFrameHeader.html | 4 +- ...questdb_nodejs-client.QwpGeohashValue.html | 4 +- ...db_nodejs-client.QwpHandshakeMetadata.html | 16 ++-- ...nodejs-client.QwpIngressEncodeOptions.html | 6 +- ...db_nodejs-client.QwpIngressErrorEvent.html | 6 +- ...estdb_nodejs-client.QwpIngressMetrics.html | 12 +-- ...nodejs-client.QwpIngressProgressEvent.html | 4 +- ...ejs-client.QwpIngressReconnectOptions.html | 12 +-- ...stdb_nodejs-client.QwpIngressResponse.html | 4 +- ...db_nodejs-client.QwpIngressServerInfo.html | 4 +- ...lient.QwpIngressSymbolDictionaryDelta.html | 4 +- ...b_nodejs-client.QwpIngressTableResult.html | 4 +- ...questdb_nodejs-client.QwpLong256Value.html | 4 +- ...ejs-client.QwpNodeClientConfigOptions.html | 10 +-- ...db_nodejs-client.QwpNodeClientOptions.html | 10 +-- ...db_nodejs-client.QwpNodeEgressOptions.html | 42 +++++------ ...b_nodejs-client.QwpNodeIngressOptions.html | 60 +++++++-------- ...nodejs-client.QwpNodeOrphanDrainEvent.html | 8 +- ...js-client.QwpNodeOrphanDrainerMetrics.html | 6 +- ...js-client.QwpNodeReplayDataLossReport.html | 6 +- ...ejs-client.QwpNodeReplayRecoveryEvent.html | 4 +- ...-client.QwpNodeStoreAndForwardOptions.html | 30 ++++---- ...estdb_nodejs-client.QwpNodeUdpOptions.html | 26 +++---- ...db_nodejs-client.QwpNodeUdpSocketLike.html | 4 +- ...nodejs-client.QwpNodeUpgradeRejection.html | 4 +- ...nodejs-client.QwpNodeWebSocketOptions.html | 16 ++-- ..._nodejs-client.QwpPoolSlotReservation.html | 4 +- ...db_nodejs-client.QwpQueryErrorMessage.html | 4 +- ...questdb_nodejs-client.QwpQueryRequest.html | 12 +-- ...estdb_nodejs-client.QwpReconnectEvent.html | 8 +- ..._nodejs-client.QwpResourcePoolMetrics.html | 4 +- ...tdb_nodejs-client.QwpResultArrayValue.html | 4 +- ...b_nodejs-client.QwpResultBatchMessage.html | 6 +- ...questdb_nodejs-client.QwpResultColumn.html | 4 +- ...b_nodejs-client.QwpResultColumnSchema.html | 4 +- ...tdb_nodejs-client.QwpResultEndMessage.html | 4 +- ...estdb_nodejs-client.QwpRoutingOptions.html | 6 +- ..._questdb_nodejs-client.QwpSenderError.html | 8 +- ...-client.QwpSenderErrorResponseContext.html | 4 +- ...uestdb_nodejs-client.QwpSenderMetrics.html | 8 +- ...db_nodejs-client.QwpServerInfoMessage.html | 4 +- ..._questdb_nodejs-client.QwpSymbolValue.html | 4 +- ..._nodejs-client.QwpUpgradeErrorDetails.html | 8 +- .../_questdb_nodejs-client.QwpUuidValue.html | 4 +- ...uestdb_nodejs-client.QwpWebSocketLike.html | 16 ++-- ...questdb_nodejs-client.QwpWriterColumn.html | 8 +- .../_questdb_nodejs-client.SenderBuffer.html | 34 ++++----- ...questdb_nodejs-client.SenderTransport.html | 10 +-- docs/modules/_questdb_nodejs-client.html | 10 +++ ..._questdb_browser-client.QwpBindSetter.html | 2 +- .../_questdb_browser-client.QwpBindType.html | 2 +- ...browser-client.QwpBrowserAuthProvider.html | 2 +- ...uestdb_browser-client.QwpBrowserFetch.html | 2 +- ...lient.QwpBrowserSessionAuthentication.html | 2 +- ...ient.QwpBrowserSessionBootstrapConfig.html | 2 +- ..._questdb_browser-client.QwpColumnType.html | 2 +- ...uestdb_browser-client.QwpDecimalInput.html | 2 +- ...db_browser-client.QwpDoubleArrayInput.html | 2 +- ...b_browser-client.QwpEgressCompression.html | 2 +- ...estdb_browser-client.QwpEgressMessage.html | 2 +- ...r-client.QwpEgressViewCallbackControl.html | 2 +- ...uestdb_browser-client.QwpGeohashInput.html | 2 +- ...browser-client.QwpIngressProgressKind.html | 2 +- ..._browser-client.QwpInitialConnectMode.html | 2 +- .../_questdb_browser-client.QwpInt64.html | 2 +- .../_questdb_browser-client.QwpIpv4Input.html | 2 +- ...uestdb_browser-client.QwpLong256Input.html | 2 +- ...uestdb_browser-client.QwpLong256Words.html | 2 +- ...stdb_browser-client.QwpLongArrayInput.html | 2 +- ...client.QwpNegotiatedEgressCompression.html | 2 +- ...tdb_browser-client.QwpNestedLongArray.html | 2 +- ...b_browser-client.QwpNestedNumberArray.html | 2 +- ...tdb_browser-client.QwpQueryCompletion.html | 2 +- ..._browser-client.QwpReconnectEventKind.html | 2 +- ...wser-client.QwpResultBatchViewHandler.html | 2 +- ...owser-client.QwpResultRowViewCallback.html | 2 +- ...questdb_browser-client.QwpResultValue.html | 2 +- ...browser-client.QwpSenderErrorCategory.html | 2 +- ...b_browser-client.QwpSenderErrorPolicy.html | 2 +- ...uestdb_browser-client.QwpSenderLogger.html | 2 +- .../_questdb_browser-client.QwpTarget.html | 2 +- ...estdb_browser-client.QwpTimestampUnit.html | 2 +- ...db_browser-client.QwpUpgradeErrorKind.html | 2 +- ...browser-client.QwpUpgradeTimeoutPhase.html | 2 +- .../_questdb_browser-client.QwpUuidInput.html | 2 +- ...db_browser-client.QwpWriterColumnKind.html | 2 +- .../_questdb_browser-client.QwpWriterRow.html | 2 +- ...uestdb_browser-client.QwpWriterSchema.html | 2 +- .../_questdb_nodejs-client.ExtraOptions.html | 8 +- docs/types/_questdb_nodejs-client.Logger.html | 2 +- .../_questdb_nodejs-client.QwpBindSetter.html | 2 +- .../_questdb_nodejs-client.QwpBindType.html | 2 +- .../_questdb_nodejs-client.QwpColumnType.html | 2 +- ...questdb_nodejs-client.QwpDecimalInput.html | 2 +- ...tdb_nodejs-client.QwpDoubleArrayInput.html | 2 +- ...db_nodejs-client.QwpEgressCompression.html | 2 +- ...uestdb_nodejs-client.QwpEgressMessage.html | 2 +- ...s-client.QwpEgressViewCallbackControl.html | 2 +- ...questdb_nodejs-client.QwpExtraOptions.html | 6 +- ...questdb_nodejs-client.QwpGeohashInput.html | 2 +- ..._nodejs-client.QwpIngressProgressKind.html | 2 +- ...b_nodejs-client.QwpInitialConnectMode.html | 2 +- .../_questdb_nodejs-client.QwpInt64.html | 2 +- .../_questdb_nodejs-client.QwpIpv4Input.html | 2 +- ...questdb_nodejs-client.QwpLong256Input.html | 2 +- ...questdb_nodejs-client.QwpLong256Words.html | 2 +- ...estdb_nodejs-client.QwpLongArrayInput.html | 2 +- ...client.QwpNegotiatedEgressCompression.html | 2 +- ...stdb_nodejs-client.QwpNestedLongArray.html | 2 +- ...db_nodejs-client.QwpNestedNumberArray.html | 2 +- ...js-client.QwpNodeOrphanDrainEventKind.html | 2 +- ...stdb_nodejs-client.QwpQueryCompletion.html | 2 +- ...b_nodejs-client.QwpReconnectEventKind.html | 2 +- ...dejs-client.QwpResultBatchViewHandler.html | 2 +- ...odejs-client.QwpResultRowViewCallback.html | 2 +- ..._questdb_nodejs-client.QwpResultValue.html | 2 +- ..._nodejs-client.QwpSenderErrorCategory.html | 2 +- ...db_nodejs-client.QwpSenderErrorPolicy.html | 2 +- ...questdb_nodejs-client.QwpSenderLogger.html | 2 +- ...nodejs-client.QwpSfBackpressurePolicy.html | 2 +- ...questdb_nodejs-client.QwpSfDurability.html | 2 +- .../_questdb_nodejs-client.QwpTarget.html | 2 +- ...uestdb_nodejs-client.QwpTimestampUnit.html | 2 +- ...tdb_nodejs-client.QwpUpgradeErrorKind.html | 2 +- ..._nodejs-client.QwpUpgradeTimeoutPhase.html | 2 +- .../_questdb_nodejs-client.QwpUuidInput.html | 2 +- ...tdb_nodejs-client.QwpWriterColumnKind.html | 2 +- .../_questdb_nodejs-client.QwpWriterRow.html | 2 +- ...questdb_nodejs-client.QwpWriterSchema.html | 2 +- .../_questdb_nodejs-client.TimestampUnit.html | 2 +- ...uestdb_browser-client.QWP_COLUMN_TYPE.html | 2 +- ..._browser-client.QWP_COMPRESSION_CODEC.html | 2 +- ..._browser-client.QWP_DECIMAL_MAX_SCALE.html | 2 +- ...t.QWP_DEFAULT_EGRESS_BUFFER_POOL_SIZE.html | 2 +- ...ent.QWP_DEFAULT_EGRESS_INITIAL_CREDIT.html | 2 +- ...DEFAULT_EGRESS_SERVER_INFO_TIMEOUT_MS.html | 2 +- ...nt.QWP_DURABLE_ACK_WEBSOCKET_PROTOCOL.html | 2 +- ..._browser-client.QWP_EGRESS_CAPABILITY.html | 2 +- ...tdb_browser-client.QWP_EGRESS_MESSAGE.html | 2 +- ...uestdb_browser-client.QWP_EGRESS_PATH.html | 2 +- ...b_browser-client.QWP_ENCODING_GORILLA.html | 2 +- ...wser-client.QWP_ENCODING_UNCOMPRESSED.html | 2 +- ..._browser-client.QWP_FLAG_DEFER_COMMIT.html | 2 +- ...ient.QWP_FLAG_DELTA_SYMBOL_DICTIONARY.html | 2 +- ...wser-client.QWP_FLAG_DURABLE_ACK_POLL.html | 2 +- ...estdb_browser-client.QWP_FLAG_GORILLA.html | 2 +- ..._questdb_browser-client.QWP_FLAG_ZSTD.html | 2 +- ...uestdb_browser-client.QWP_HEADER_SIZE.html | 2 +- ...estdb_browser-client.QWP_INGRESS_PATH.html | 2 +- ...wser-client.QWP_INGRESS_PROGRESS_KIND.html | 2 +- ...nt.QWP_INGRESS_SERVER_INFO_CAPABILITY.html | 2 +- ...owser-client.QWP_INITIAL_CONNECT_MODE.html | 2 +- .../_questdb_browser-client.QWP_MAGIC.html | 2 +- ...owser-client.QWP_MAX_ARRAY_DIMENSIONS.html | 2 +- ...client.QWP_MAX_ARRAY_DIMENSION_LENGTH.html | 2 +- ...client.QWP_MAX_BATCH_ROWS_UPPER_BOUND.html | 2 +- ...rowser-client.QWP_MAX_CELLS_PER_BATCH.html | 2 +- ...wser-client.QWP_MAX_COLUMNS_PER_TABLE.html | 2 +- ...ser-client.QWP_MAX_COLUMN_NAME_LENGTH.html | 2 +- ...owser-client.QWP_MAX_IDENTIFIER_BYTES.html | 2 +- ...browser-client.QWP_MAX_ROWS_PER_TABLE.html | 2 +- ...client.QWP_MAX_SYMBOL_DICTIONARY_SIZE.html | 2 +- ...owser-client.QWP_MAX_TABLES_PER_FRAME.html | 2 +- ...wser-client.QWP_MAX_TABLE_NAME_LENGTH.html | 2 +- ...client.QWP_MAX_ZSTD_DECOMPRESSED_SIZE.html | 2 +- ...lient.QWP_QUERY_FLAG_RESET_DICTIONARY.html | 2 +- ...owser-client.QWP_RECONNECT_EVENT_KIND.html | 2 +- ...wser-client.QWP_RESET_MASK_DICTIONARY.html | 2 +- ...wser-client.QWP_SENDER_ERROR_CATEGORY.html | 2 +- ...rowser-client.QWP_SENDER_ERROR_POLICY.html | 2 +- ...uestdb_browser-client.QWP_SERVER_ROLE.html | 2 +- .../_questdb_browser-client.QWP_STATUS.html | 2 +- .../_questdb_browser-client.QWP_TARGET.html | 2 +- ...browser-client.QWP_UPGRADE_ERROR_KIND.html | 2 +- ...wser-client.QWP_UPGRADE_TIMEOUT_PHASE.html | 2 +- .../_questdb_browser-client.QWP_VERSION.html | 2 +- ...client.QWP_ZSTD_MAX_COMPRESSION_LEVEL.html | 2 +- ...client.QWP_ZSTD_MIN_COMPRESSION_LEVEL.html | 2 +- ...questdb_nodejs-client.QWP_COLUMN_TYPE.html | 2 +- ...b_nodejs-client.QWP_COMPRESSION_CODEC.html | 2 +- ...b_nodejs-client.QWP_DECIMAL_MAX_SCALE.html | 2 +- ...t.QWP_DEFAULT_EGRESS_BUFFER_POOL_SIZE.html | 2 +- ...ent.QWP_DEFAULT_EGRESS_INITIAL_CREDIT.html | 2 +- ...DEFAULT_EGRESS_SERVER_INFO_TIMEOUT_MS.html | 2 +- ...nt.QWP_DURABLE_ACK_WEBSOCKET_PROTOCOL.html | 2 +- ...b_nodejs-client.QWP_EGRESS_CAPABILITY.html | 2 +- ...stdb_nodejs-client.QWP_EGRESS_MESSAGE.html | 2 +- ...questdb_nodejs-client.QWP_EGRESS_PATH.html | 2 +- ...db_nodejs-client.QWP_ENCODING_GORILLA.html | 2 +- ...dejs-client.QWP_ENCODING_UNCOMPRESSED.html | 2 +- ...b_nodejs-client.QWP_FLAG_DEFER_COMMIT.html | 2 +- ...ient.QWP_FLAG_DELTA_SYMBOL_DICTIONARY.html | 2 +- ...dejs-client.QWP_FLAG_DURABLE_ACK_POLL.html | 2 +- ...uestdb_nodejs-client.QWP_FLAG_GORILLA.html | 2 +- .../_questdb_nodejs-client.QWP_FLAG_ZSTD.html | 2 +- ...questdb_nodejs-client.QWP_HEADER_SIZE.html | 2 +- ...uestdb_nodejs-client.QWP_INGRESS_PATH.html | 2 +- ...dejs-client.QWP_INGRESS_PROGRESS_KIND.html | 2 +- ...nt.QWP_INGRESS_SERVER_INFO_CAPABILITY.html | 2 +- ...odejs-client.QWP_INITIAL_CONNECT_MODE.html | 2 +- .../_questdb_nodejs-client.QWP_MAGIC.html | 2 +- ...odejs-client.QWP_MAX_ARRAY_DIMENSIONS.html | 2 +- ...client.QWP_MAX_ARRAY_DIMENSION_LENGTH.html | 2 +- ...client.QWP_MAX_BATCH_ROWS_UPPER_BOUND.html | 2 +- ...nodejs-client.QWP_MAX_CELLS_PER_BATCH.html | 2 +- ...dejs-client.QWP_MAX_COLUMNS_PER_TABLE.html | 2 +- ...ejs-client.QWP_MAX_COLUMN_NAME_LENGTH.html | 2 +- ...odejs-client.QWP_MAX_IDENTIFIER_BYTES.html | 2 +- ..._nodejs-client.QWP_MAX_ROWS_PER_TABLE.html | 2 +- ...client.QWP_MAX_SYMBOL_DICTIONARY_SIZE.html | 2 +- ...odejs-client.QWP_MAX_TABLES_PER_FRAME.html | 2 +- ...dejs-client.QWP_MAX_TABLE_NAME_LENGTH.html | 2 +- ...client.QWP_MAX_ZSTD_DECOMPRESSED_SIZE.html | 2 +- ...js-client.QWP_ORPHAN_DRAIN_EVENT_KIND.html | 2 +- ...ejs-client.QWP_ORPHAN_FAILED_SENTINEL.html | 2 +- ...lient.QWP_QUERY_FLAG_RESET_DICTIONARY.html | 2 +- ...odejs-client.QWP_RECONNECT_EVENT_KIND.html | 2 +- ...dejs-client.QWP_RESET_MASK_DICTIONARY.html | 2 +- ...dejs-client.QWP_SENDER_ERROR_CATEGORY.html | 2 +- ...nodejs-client.QWP_SENDER_ERROR_POLICY.html | 2 +- ...questdb_nodejs-client.QWP_SERVER_ROLE.html | 2 +- ...ejs-client.QWP_SF_BACKPRESSURE_POLICY.html | 2 +- ...estdb_nodejs-client.QWP_SF_DURABILITY.html | 2 +- .../_questdb_nodejs-client.QWP_STATUS.html | 2 +- .../_questdb_nodejs-client.QWP_TARGET.html | 2 +- ..._nodejs-client.QWP_UPGRADE_ERROR_KIND.html | 2 +- ...dejs-client.QWP_UPGRADE_TIMEOUT_PHASE.html | 2 +- .../_questdb_nodejs-client.QWP_VERSION.html | 2 +- ...client.QWP_ZSTD_MAX_COMPRESSION_LEVEL.html | 2 +- ...client.QWP_ZSTD_MIN_COMPRESSION_LEVEL.html | 2 +- packages/nodejs-client/README.md | 25 +++++++ packages/nodejs-client/src/options.ts | 28 ++++++- packages/nodejs-client/src/sender.ts | 11 ++- packages/nodejs-client/src/transport/tcp.ts | 2 +- test/dist-types/tcp-auth.ts | 13 ++++ test/options.test.ts | 31 +++++++- test/sender.transport.test.ts | 75 ++++++++++++++++++- 576 files changed, 1628 insertions(+), 1403 deletions(-) create mode 100644 test/dist-types/tcp-auth.ts diff --git a/README.md b/README.md index 73d5b0b7..e68dbaf5 100644 --- a/README.md +++ b/README.md @@ -669,6 +669,30 @@ async function run() { run().catch(console.error); ``` +You can also pass a complete private EC P-256 JWK through `extraOptions.jwk`, +without mutating `SenderOptions`: + +```typescript +import { readFileSync } from "node:fs"; +import { Sender } from "@questdb/nodejs-client"; + +// The file must contain kid, d, x, y, kty: "EC", and crv: "P-256". +const jwk: Record = JSON.parse( + readFileSync("path/to/private-jwk.json", "utf8"), +); +const sender = await Sender.fromConfig("tcps::addr=questdb.example:9009", { + jwk, +}); +await sender.connect(); +// Write and flush rows, then close the sender. +await sender.close(); +``` + +The same option is supported by `Sender.fromEnv({ jwk })` and the +`SenderOptions` constructor and factories. It takes precedence over +`username`/`token` in the configuration string and is rejected for transports +other than TCP/TCPS. + ### Array usage example ```typescript diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js index 733322f0..f64e6ba5 100644 --- a/docs/assets/hierarchy.js +++ b/docs/assets/hierarchy.js @@ -1 +1 @@ -window.hierarchyData = "eJy1mltzmzgYhv8L10qXT4CRfNccOtuZdHdTJ92LjqdDQHHYYIkVON1OJ/+9I5FNYwG2kOhNHHvsl4dXp+/A90AK0TbB8jPgMIoRjRcYAYZFhCgBjFIahQgAU4pImAKiFEIEOMIYUYrVV6MoRiSFCAGk6lskSREAoRhRCBcIQojDNQoku6tY3paCN8Hye5DGOFSvPNuyYBlcfa3PdzK7rdjb/OGGZ49ZWal3F1IKGaDgoeRFsARMULCTVbAM8iprGtb89uXfHWva4vYLFwX7pznJq5Lx9s1BvTf37bYKUKcRLIO2KU7UBU66D55QoO56n+4jq6vs23mp7yCT3zzABqWOMKEgvy+rQjIeLD8TElGU0pisNWpMDqP+xWRTNi3juY+dx1RtTCWLIdJVKyR7W9eMF9fllold6405InmckYQhHWU8zdr8/lqIy0xu/K0ckbRhjPAo49k9yx9qUfKZTDT0bOiSA3RCyl2tZtBMdPt6NnQpjNLNwzR5Oat1gdTEQ2pkkTIQkZCGiIB6CwkgAqD+pOozitf6RujgDqUR3u2qap6beVGysBZg3NpLkT+wYh6mV1o2VAcWi1K6FM1MS2VPzYYsOezXDa+lePQ8BQ9r2lCm4/PsapfJjLcln2toTUEbPjo+viu22TLezrtlD4lacMbEHG1RsQ9ls1UngA+ZKWPBkoBxEK8YL84q0XiNoyFiwZFC1OfwJJgeTaURIGWJ3lbTCPpI/mGJqWJhDomMSOSGS5aLR6bD2hnj0eO6NrRJatDWG5kVPmvutcKkAY0JIJVfIEII1aNKiOHlJxW9Cj7D+htSOu6XSo1eEanpweTp7u6OyU/YAWRfYIpbFFKdR6jXMaLIlyiycCTac+Q6r69lxptayNbh6q9/bnPt2Ji9Z1l+zz6yhrUfWNNkG/bCgJPF/wwlb5m8y/KD86OnNIrzIqeR4jjeR7r4j+XngjNfIEPHFicxjox3Uv3rCqF/bXvpBR649O8sK5j0A+g0LDD2VwxNCKKEJqoYosokCUVquJCaRkg5pddTsjDy8j9EwS42kjXNn3VXB3GF7ylZOrmAtI/0ns/GtC9lCUUA96H+ZrcrFea3c2CZYpMHPFkQpMzT40oS4yy52rHnc9J3afaUbC2kiRkDN7uq1cUFX6a+lCUUDeMhqDNR7bbcE6cTsQWBXgbzU2OV37NtNgtOJzV9NwnjdYcZDWFe8GKeIfwpZOsbNjMrsWtLvvFdkvsyLoux8yshZqQuH5l8z++Er2E9JTvHdKm7F0P1w5hJOIbIZLuiUB9HEKbUOMFPpfjaMLlijQpgT1UboJVZbR8L33YCr4w7JHk8DIOQJsZG5tkU6BP6dAV0G2SutkAfzbsvAECIasNEoV4h+p9f0Bo4Tj69NwCQ9M4wp/rIANz0AgnAAg+UAaZWSPosk0skuqfmUyMZZnCZWiFB2pduahFzajnVSYbpphVK9Kz/JZWSPt0cpRLdG/WslQyQORZL9MJDeudF+ozohpeaxafnnd0pfxk9JxxyGAC6GEZzy2NG2VxyGd1CH4RzzWdG8XxzGj3ESLu57sjNNrJzCaTP7FgDAQxxMksRpI/kVAUBDGaZc1IZpI8xoQ6iH8rwLoSMILhVQgBHqX4aJEz1MyEJAoxTQHrgkJ5TSHvWTTFs9l6dM+f+XTimzpp9rtx5KDByS54BR2aLxiV7HgOakj7rZ33myp8PA7kl0Nqr9TPpYB1kego9xjk1h9ZPR82RRA+FtT5ZtN7+n00zG7zOefRQNOeQSD89/QBo0EiX" \ No newline at end of file +window.hierarchyData = "eJy1ml1zmzgUhv8L10qXw6fku+ajs51Jdzd10r3oeDoEFIcNllgB6XY6+e8diWwaC7CFRG9s7LFfHl59nXOk757gvG281WcI/BAjEiUxggCSFBEMMUpJGCKA0A8R9tMIEQIhgiAMEkRIIH8ahhjhFBIEgOWvcOLLS5IgAj5B4EMUbpAn6F1F87bkrPFW3700CkL5zrId9Vbe1df6vBPZbUXf5g83LHvMykp+uhCCCw95DyUrvBUEGHmdqLyVl1dZ09Dmty//drRpi9svjBf0n+Ykr0rK2jcH9d7ct7vKQ72Gt/LapjiRNzjpv3hCnnzqfbqPtK6yb+eleoJMfHMAG5U6woS8/L6sCkGZt/qMcRSglMSwUagxHEb9i4qmbFrKchc7j6mamIrJGOm65YK+rWvKiutyR3nXOmNOSB5nxD4Ek4ynWZvfX3N+mYmtu5UTkiaMYTzJeHZP84eal2whEzU9E7r4AB0XoqtlD1qIbl/PhC6NJumWYZo9nOW4QLLjIdmySBqIsE9ChEF+hDhCGEC+pPI7Em/Ug5DRGUohvOuqapmHeVEysBZg2tpLnj/QYhmmV1omVAcGi1S65M1CQ2VPzYQsPuzXDasFf3RcBQ9rmlCm0/3sqstExtqSLdW0uqAJH5lu3zXd7ihrl52yx0QNOCOstzav6Iey2ckVwIVMlzFgiUFbiNeUFWcVb5zaURMx4EghGXI4EsyPptIwQtISNa2mYTREcg9LdBUDc3CkRSI3TNCcP1IV1i4Yjx7XNaFNfI223oqscBlzrxVmNWiEIyTzC4QxCVSrYqJ5+UlGr5wtMP7GlI77JVOjV0Sye1Bx2t3dUfEpsADZF5jjFgGs8gj5PkUUuhKFBo6Ee45c5/W1yFhTc9Fa3P31303uHWu99yzL7+lH2tD2A22abEtfGII4+Z+hZC0Vd1l+sH8MlCZxXuQUUhSl+0gX/9H8nDPqCqTpmOLE2pLxTshLWwj1b9NbJ/HIrX+nWUGFG0CvYYCxP2JIAohggmUxJEEEJwGSzYVkN0LSKTWe4lTLy//gBb3YCto0f9Z9HcQWfqBk6GQS+EOk92wxpn0pQygM8RDqb3q7lmF+uwSWLja7weMUkDRPtStOtLXkqqPP66Tr0BwomVpIsB4DN13VquKCK9NQyhCK+OkY1Bmvuh1zxOlFTEFgkMH81Fjn93SXLYLTS82fTfx002MmY5gXrFimCX8KmfoW6JkV79qSbV2H5L6MzWDs/UpAj9TFIxXv2R13NWygZOaYKnUPYqhhGDMLRxOZbVfoq+UIfOxrk/+p4F8bKta0kQHsqdwGaEVWm8fCt73AK+MOSR4Pw8AnepThuCkwJHTZFVDbIEttCwzRnPcFADBO5WYNqKxHXfyCrYHj5PP3BgBiom8OWNVHRuDmF0gAEn3us6mQDFlml0jUnppLjWScwaZrQYCUL33XwnrXsqqTjNPNK5SoXv9LKiVDuiVKJWpv1LFWMkJmWSxRAw+pmRepNaJvXhKFo4uFVf4yuU5Y5DAARC9IP4vZ5TGTbDa5jNpCH4WzzWcm8VxzGtXESLm56cnjYKESyJDZsgYCAURkkSLIEMmqCiLPRYBDGWSIMaMOog5lOBdCJhDsKiEQhGkkj4AAqDMhBEEQpOr8SCSv/ThQZ0mg72JBGi+UOQ+fwjJ1VuxL5c5jgZFd8izN9N2z5ymgOemzOuuzVP58GMgugVZebZ5JBwdM7FLoKc65ObQ6HbVEEj0W1rpk0Wr6fzZNPxFhnUePRXMWifTT0w/dZEh0" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index 476c3858..8e3c6a48 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "eJzMvVlzIzmW7/lVrqVeu+d2KjJj8vbTMCgpUlPakpIiu7LtmgxyBymvcDoYcFBLXpvvPgZfSF8Ap+MsLr10V0UJf/4OHOvBwcH/+Umrl/yn//zv//PT9ySLf/rP43/7KRNr+dN//vT//NjK3MSP//PR/onU/x6liczMT//201anP/3nT2sVb1OZ/8+H6u8e2n/3fz2ZdfrTv/0UpSLPZf7Tf/700//3b/Wv/Hz82+53/njZfBEmerpT6kLolTzVWundr1TFvb/iLO347X/7aSO0xfcbtsf79ed9NUQqy43eRoYE6qgtFwTolm3W6n8c/7LjfrR/eZv8Lb+8GZlToBeKefK3fKwUGenX4vULuQFr8cptQ6ddJ1n8TaTbQPxdqY/Qjtsw6Pa7r5E95vHn459/+aVBum0MMyDGUoCI7j9+2X9ULXOJYqsFGNhyab4olUqRYQBzaR53KkyUb0ZiEUsJHr75k0D1kVyaqJTg4TsR6PqLBWP9ncgoWYv05+PfsJRNIVbW418/07CWQqysn3+hQS10mEjV9jFFt9FahIfxLFUCNZTn0iwrDR7Cr1I9ifwJybjaqfBQnuMm61yahGu2zqW5UNkKiZeWEnx8+MEn3anwUF5t0xSJmJUSfHxks44lnWDmaTDjG0CDmbsdUM1CDWTGmcgS04yjlpd7LL19Uho7muaVBg/hXbKWuRHrzWUSaYXZ11pWU6utazVm6iuR0UFnlRgP8/02iZGk21KCh++b0BF+o/S8U2GgNOo+ycxvM63FG4bTqK3VEZUODWnXV1SWupV5nqjsi1ImN1pswr2hAzofwZ90CA/tYRqqR4+3MRLbPGy3ctiKSnLPb/L435P835PsSerEyJjTnlTlcq5iapusbFTKvotdxT+RmlQpvos1WuYbleXyi4rDRqeDVtXKj6XyJH1IS6PfROiuf4Qpe9l3+Uq51M9SLxS1YaWuVu9t2V8qY7Hs71L3fSwzwmxz+gGw1H3PEbAkuJR5LlYsxq130u9in11bq625eRLUE3KlvKmU38c6/XYlX81pFm9UEug2O2ygfsvkq5F78Xex0VpEalcpOJUtnbPIJL9TG5WqVRKJ1E4CC/kvGRF/uSQ3+x+xM4Kuf+T9rNYiy60Io831T7yLxd3d15uRCyliGbaZ2ZX6CDurNgx6H7WvEV+ESXBcRocQHoPhYuu04Y3KE5OosLPwDmBDg4VRy7VIsiTwhKID2RQhomz6UOTrRkZ2ysIwliIyg3mjDjJqKeIvyeo8M4Fe6V5VivgxWSWVDh/pfUKEuuVmxfbxgpO2n3cZi4PcT8dYyuVOhpMT/9WXOxkmzvPM/Bx2HuWgTCoRPkb8F08y1u99npmwo0g3IuwEchThfULxqbfM3/o+ofjYW+avfZ8QfO4t8/c2SzxiqUG0nuyvwv+0i/3ghW9Z6oOswhswFKvwqka8q8hUZisTdrrdgdwpEPE1293GxkvDBpomYiGDG2lGcoYPNU5O+FgzkjO4JzsxwX15mBJ88trhRJ+8HiR9sf8rdPPQRC2EsLuHcayw7YMLFrd/GEML2UD0STE7iBGUwC1EjxO5hxhLSvDtkbuIEaSgbUSPk3HErykJvjvjeF9Toob7GpJptC/k8XN8IcM5x+84CT455xy/48R/dMY5vqQEbCn6kIg9xQjGv6RWBJPQ37UMDWdn7zMvNyMBkGWJD7DnaYBg9zvzLl5nr7OWRidR0Lds0u2LE5A129mj0lq9/LGVOmi522QrJX5UEix8tzILPOHqA+a1BjFhEVwGbnVVYWomlWWBJ5+dvpB1TzWhXM7RYm7NjoNDRHuFP8wY0mWiGU6a1eSt0ZOttmFms+j7fSaeRZLa/xZctX6VD1DHB+CwlT1Qg1RxtwctoIq6BdgCibk9aA9lxG24TaHxtofMoYq2DbcEFJ16yBzS2NRwm2CRqYeMoo1LhVoVGpU6ziqqmFSAVaCI1INWkcajQq0CRKOOM4wwFjXcNmgk6iHTqONQAZbBo1APGkcfgxpuX2AE6iGbiOJPR9lBH316yDrG2FOgxbjI0xH28sSdjmun7T3H6UrLPA/2GjSKfYBdRZcGu41oVopvra3Wm1SGRnc6QBsyHJxaFsXPgxbRPcxKBXaV103ZzbglskimqYy/vN3nYQ6ifqXWWo9v2xzmKBrFvBG5OZEiTpOwlWIP2ArFeyEeWi1NoiW2HdQaPIzbXObfEvkS5F3tUVqV50qFirPpk/tvkb9l0bmRWhil/zeKtZBKKikmXqHXJM1U6DVDK+2QftUiQmOuKhEWxheRmDnN8F9occwBbR9yMR4SDKlcfKlI1nMCSKvDShprtbkQRhYZOFGsVikVRj5WShy0S5HgKrQSYGFLsiQsH06frpbg4wt2vnsgZaXDQbrSIjNzLeMkaJfSIy10olqHgzTJTwJ9aj3IJI+7DjQ6vrXQ3+eE61Crx7cWbUVkbvOnhSw8jLgFnhXSeyFuVrvWI+N9LsU4mLVMpcjlpTBSJyJN/pYxfgqoRNcNUc7ZoPo5W+Vk7LbKeZmLT0td74XodPVe/BxVvRdiU9S7OVN6ITdpWPS0k9gslda1FA+v3ZcSbG2Z+CqPO345UQlxrifsluRMadteT7RIcBscK7ZU2rbXuBJjYU7M05NK44XMt6nBeQ9qLb3TovLLeT2vs0eR2XVNeByNV+RjeWUdbIQ+2k71MXlCXTZQ+UX9FnjbTLlQvcMPLH2hj9V2PHyE7cdRlUxtyGcLVTsab0k1kVxCx0qfJZXuGjtuDlvi7RWYjvAB2z5Lc2dt4QyNekT8Bx52p0NK6m2nBOP2xx2xOcfqKUZpvvF5ipGZb0wOGY2r5FfhNlQFsS260yBEWH7TPspRrQGswLo+/AfgRYQ4EnInwkX5JLI4fxLfAXvtFmhTh4sVcFHHQYq4rzOSM5MrZRJhZGxPFTVFxznaa0YtTX4b/spNfCGfIUd5Hgv+zk2cVopc/GVw7nm2VEjsUigphehoWwfQ5WYRCbpX4aGEHjq3xzPkYe4hxtALX74hl40QdbjX4iQ53jtAu9HSap0pfaNUuijPCJDcleZS6Y1Sqd5p8lhQ333EEIPvT44nBMZI9TGRYVIHWMvQVtghX2fxZYVwB3wHWPOnrYnVS3amdOPKHnY2qESXSpd/Rz5aDC2+gXczfRofZpPpQaPZZTrqbui6HWrJ0LfA/gPJ4mHUhdMzkaTqWergJtIq+AHaRZ8H2xjaVeNpAcIYud6EnTc5UBsyPJzBl1xd9dm714olbLfF86xovrPoO/w0zKfxAVroIBq2sXrrztMellqtz/KgHcQwvxVc5qDNRCi7sY+em1vrkMvCAoWHTSh1870uvyWK9BsYxfgFnH31SkTfoX10V/bj9M02ElGf3NeR1zdZPpSEB24osdGWqVdoPvpRKQaOZRlidrZX3LLYK/JxWjDTwthffZQr40M2YJbGoyxot5lLuVb6rQyAm202MouhZ3bDSh+g9YwAxDahA7XpaUdr8RqcvHOMMWvxCk7nCbPEHiDam3Ms5tTiE9sEOqgcYw/qvBJmyzZn+jZWeILv4h+7ipjjO6Uu7PoWNXb1lT7Y2OUBpBy7HLXp3WOJtZyrbVh2izHmFMpRpTyRNdiR2GcL1Ug83hKSkdhnDulIPGyTv8ef2fZB0uP7Sh+sx3sAKXu8ozaZ+ojPGKo+Mt6SjXhLFeDlpTHWVNoTW0TS630mkfb6YZvavd6ess6i4sehmxOPxAfo50Nk2A7uqzi/j0ZtdZi3cRC/IcjNDlqlD8Kjlucj6PttfFFVF6h1twp/kHbdZ6Jo0e1qojoL8vFCz4NGk0J7nQMW29+8vJ22qpVRkUrD22mz4Edooz0edPtsVY23Bos444vQsKF9qQ9Qdx0YbMU1aoQqurlLCA5tdrJRRAx3CVHhwmMo0TG4XWKyANwwelD0rZ8dFXo7hhwWd9sFxgXdujlRcaK9MQAa9nWYLThiscsGDlccyRYcq+gEBAcqusfP9qyzkNU7CaevT2KbG8DpoEfiA8xHQ2TYyclXcYTxUoP4mMipQPbgdfNwvUNXzyOou23behVOksgmmBOAG7JOgQ/Rrn1c+FbtqjK6duHnhreKA8TDbeJG6jzJjQ18QjePrtYHbClOROpG06tTrvbjsYbqGZIQu1ytrMyfDZpRe8U/TFvqU9E0n3ZlDZ0sQgIgveyFIib0MYA+/MK+Fxt+Z/8Ab7cd20RAwbm7GsU+RLtt0+Db675SPF+6SFAGa6cd1kIJ1z4P0kYq3a6zwIbZq9Nag4MQlNagx4hKZTCGUr0ERz30IdULOMBhBKOxDyNc2f+MgSxUslKFiLJ991PiKrEsz0Fmy2C/L2Uv8Y7XJ8XLZdCBsir9sUbvJhThIF7X1EBsg/2zBfzLt8BtTIP9R4KG0Cfv3JbPlX7cr18p6EvNuKnJacFmk77NRfQkbdpc6JjQNsBKRlZSV5KM/HH9fCAaO+4/RMhEG3pneZgYenF5PHUjuS8FdiO9Lzd3Lk3hor2NnuRa0MDn0hRO47zWJB4ZvfMNov5t0Y810+yICKeZooK8p0EUO4Y9NeWuYZi7XPdjlr3NurZaFKvfMczQybzLi53Eh1mxO589LdXu5wAvbg/UwKXZBw3TYndDe1yqHdEw77NIE3xLqFUoOdsPt9t+QdS9GDmXSp+KYmGPZl0qLUWxpmfkhe+K96D4nfEQYSre1BYPuZPh4mw8gICGbWtxEevwjFKeWQCcRWo0KXyn1uTEb84GKQk6PXlvd66u58UwCFte78t+mPV1B4lmgd2oo0Ef93kWy1cKZvvfk0qMkrm7K7DXKm6k/ibSLaDvd7kLuY3Uz5UcI3kGWlR1gXELqlGcKrvapilwzdrjVVm2TVPkwnUM90bLKLGBlV+S0KAiF/hO7jGBhhSNJYfvELrQ+C3CGN48EilBU65lOEnf1o8q3ft7b0HLmx54obr3+Oaohc4YO8zbhoC7UiHlRK/Gu5Co5fgoxpnWNoZlLbMi/wdNz1tJI6xuXOuy9EOXJSTroB0/zss7ivpLYjsNGfZjITcFt1KpFIBdvAt6p8VK/GYIhg2LWwpxss6fBMHaeSVNVApxsp7IKFmL9D4rpjCA+8mBHZea270mqwVq+0gxh1vwWoqT9yxVgmaUXlZKnLRfpXoS+RPNQnQlzarU41iJdsjPiebChH3uu1DZigQ1LYW4WY9//fyn0jRjRVrqvZR6nOS3T0rTtIi8UmKlNTohahV5LcXKW2wkaHhrKX7eM6Uhh29e6KXSmMOXAHJSbHbme7P8jWyVvDXL3yZYI99vk/j3ZAWIjXYxb5P4qRTjZr6AOL89yCnGCX6YOMmtew5Pm+RZqcNGWnkSiVzMlSeRxcfso6bpfk1y7j5of+hLYtZiE5zdyAO/TdPHQhCc0WgseznnEnGXYvzM1cRC01LqmYW7lRTHHTlRTZdiHDXtPP1bqBdYZVcFP8y5X5OH5tCvrprhmDokaa3BxajVC3DGaGFq9YKcKhykaG93CxHl6j5MR+Ln7gKTOrlH2oDv7kTu7cO8GN92F5jCsT2CGOrV7uFiXdojWEH+7B4oypl9mBLmye5S4tzYhynRPuwuMJkDewQ70HvdQ0a6rg+TAv3WXVCk0/owJ8pj3aUlcVcfZgb5qrusKEf1YUaYl7oLiXNRj6ME+6ddsGjn9GFmoGe6S4t0S4/gBPqke6BIh/QIUqA3ukeKdEWPJYV4c92sGFfuYVq4H7dLi3fijqAFe3B7tGj37ThakO/WBYty3B5ghXptW5xYl+0BRrVE8hUCZGxd749K5WWSr637ITx/ULfwR/ACOZnQnqBeNZHlmvLwkiWXGk1uE2jOQ6+Re+itVu8iObcFxT/h4SuZ6bi1NPpNhO693PBNreksKLPD2j8nMKEU0+pdbPhLZXQ2/F2KTWhDka6LqBOXYpP34vJnL2WeixWdGeud3nSWlO/dEpiwE+Kbt6oXJ26eQi//eYhLuc1T9w4ge53rtyv5ak6zeKOSQFeGxxT9lslXI/eK01lj2fEWlCqs1J3TpiS/UxuVqlUSidSWK/MAEtiS5GavbOcIXStPbJ8WWW5LUltX605nW2dHcCuzGPh+b6foB9gNuIiwe4FuBVHtBNysVPuAsdSQd4Xd5JjXhAdo+601LPtcWQLbNjsDgoi+yxiSVqdBc1SIYLLpVJXhpVxLo5Mo6CyiybcvTk622T6mSf6Er8OdEG09tpLF2SPveXDukdaXthLwvCMH+IJmohYWaI15iOYqzJPYBspg3sNhpjIGAPcJSw2ub1gd+yMRSxE2xjcjkYBvRnLRRSKLZBqYc6cJVwoAc28cYHsSGldzVoGt5kKf4mmBQZ/hGcF0prR9KQ6FtlR6o2DnaAcIyzdDwHC74sRcscD2UqvA1daq8Jafj39DMu50mEmPf/1MQnr862dm0s+/kIB+/oWZk4RyEsY7+Qru3y1OUwpRsxZxV8jqLDS4arMIuPp0jEOsRFgZCQj5+LZ5UBhBm6wszME0y+Kv0mD3b4WUyGIbRcK2g6t5/xQJuEPXoC+lBjFhFeyHa4eVCFdLTDJ0Xy4kGPnQdGxsm2fk9GwVuOiqYEMcYCXCyTjDe2KsDKs3xv4AHpGLbqOlFal2Vovw5J8t31spVm2xEBlAh5mDE382GcH5PoeZioBX3GcuJLi+cxnnigQsNNgIg+NkW2zg6NhhKhMaltOEMr04HBqmZC1zI9Yb3OfcyXB9URv8iUO0Clx0dt12pvQs+g6lswpLpUWhQE1nj/agx1pHu9J4KudxW3Eyd1eGeIAOiR0SH+Sw2EdGcWjsqjjPMSzyPNFjA9EB42gryrglcjNK2SntKP/mEnBy6jOh/Jc14jB1kL7fa0H99CP1TNq+SB+6QfHItJOs/y0xQ+8HHHNZBtsx/fpxu1xKLePZ2t64D07c4WavRUUhCk7gMdYGUFt11DhlnBHrmMowmI4cRTtpr4PAO2U/Qs9zIaF7XreOvBE/eWDScDcuNEn4EGcreiWOFzJSz7ZD42lFHOuGGhu1DR9NZH6m1RoPXYktSzE25pU013oWE9TyShqlRcxaw+E+KCcq3Bs1ktPobRaJsPwebtSGEhttkfNqRlCvhRAwms3P2pkP7qx750sx24cQN4p9gFmgS4OdAJqV4pn5i/+HQawEiNjwjzY66jCFPtg4ihHytEkPEvOqiYeyN57PtQSFH/VgizE9KtTgDsER1PamT2DMYL95ylcDDBscQRg88/Q/PHTSGUOn0vRRRN+xdVjr8NVjvkvWdBv68E6PNt/laQK/vjOOuEoodFO/ooSlriIENg09FvI0iWTou/Z9Xquiga/Ze+Ylx4z+Z7DrvVEMO6N33KeAV2O7MLgXY5s14u3y4V29yYfp4gfJwltcBw3e2HpsncZ2n1V7QfvHC7lJbVrJetUZ7No7rPYBFpsjIbFr0BE1S+VMG20RlXstzLZOi9ustIhleNtqlPsIraiLg24vzXohaxl9SuipwCg+SPYWB6MzcQshZ2iOlj5iLz0LIR0oE0sf0Z2EhZATlm+lD+pJtUJOGppVxUfaS6hCSQrKneIgdadNIScFZEjxwbqSoxDyQnOL9HG9aUUoaeEZRBzAA8lDCJkD84T0ObspQnBs9NlA+sRjEoFQW4HL+eG04UC6D2Qbaa//yh3JQr0ErwDbJT/AGtABhF0FdmqHah3oJIWuBEcyFh7SUMeBu0qtEtR5MI4W8jKFixXzNMU4UpA/xoWKcsl4WY9//dzs7eUjD/YgbIebZEbqpYiGifcFSb1Zu+ctchzPUUsouPoa1eIBLV/eQULuRGgAO9/2S1lqtjVPc1VfJw3B7QuQfus8WWUipWE62okFV6Wjmg5V6bwofL0xgIbqkiCt1ijd5k3fNBLraK8Hrdp2dXmw5UrLnKwyj3ZyrNBJRku912PF3jQTZGCZoZkyDgC7e95pUT+onteSIO15YmueqJiOKjG0L9hZcYOhrvaS320z8A5rSilr20kvEm8Co8oUPSdaJNldL5wUa1opHltxd4DpFAY2YvwpTbOy72eUWm/snzXPr9EWtTShA1Yo/oV8lsDRdtiGtBJmNqRIOWTtSHIjM6nPs0f1OhcbESXmjdCu+nfS6ncS+zvR/ncmbn4FDkOvKoXfrV8tRZLak8F7ndIZVYtuS9FJDUqyxCQinWsZJ8ANjsOiSjWqVSc1aS1ev9gcvK1gGKxFa/FaPB+qgeEKIQao7KxqEYtWIBrWBpXVLa0fnjbBd9loZVSkCDtOU3FSU35spX6jH90K2Xcb22zQQzu/HtaepuKkpuT7C0eEn8eqvtvXKQ9nbdZoDsOsts0j/Y7mFYuyL0rZ9+LEhtC2QvixITypYZ0HKrDmOJ6pmMCI5tkn1oLuMegE+C/y8VZF36U5E/bkim7Z/SIf80J4uROe1LC/mzEfWGOoXtI5YIDbM3We4V1TbQ1a31T0HTnsOuBsrgiOAbdTl+TuNqcptP620Saos1auRgo7VD+D46TGtO/I01nUvyY/qVnn1pBnkZJ2oNq2pBJ/n35UGgjfbw6a1ttxTmFUmQvc/jzDsFcmCbfi7zf6UXh9vba9o1kc/kannZM5HIMM5/iifC7HcabF2+Iiwiz6/g8pNyJNniWlfZW8iL5/r+XfwUgbIc3VVgvt922eeL+xyzAmx/E4k1ZKJ2kq6KzZC05rSBU1cCVXyiTC/inDKFL9SLb/EVRGnUADSx9/OZBdNqPvCewqPf2l9proIdMg81K1orOnFJvWgPrAwkYNEC/+62MLGznwPuv/tXi14ZwXMltR7jfX4tX+QFrLTmyUXCv9Vl4NnG02MotPpIjTJCOdmctf0cWviOJX4upX3mGCbpp8KV6p22nDVNtm36Wpquxkt9SiM01l+xXWO5jUvodAYI2sBKc25EYrRLSg25bNXnNqcxYy36gsJ5yKVab3mlObU+ZLJW9seSH7Pk0OeV7tMojjwHqcMcjDXZcxHKe7Y40phDhG60raM2RzGENwVu0yhOuweqxRFMe5brvYznNHmuZLUYo3rVCOm8rTmlbclBTlzwMPfF12dWWnNQp8du0yhfbwepwBNKfXLmsYj6+9prmPf2874wXqHNgjRn5ZQWYmiQpfDj3nUe8HoLOQr2p9nkppIuA+fdCeWnciM2xIUxLJWRS1kjjS2VP9gIjACR6BhiGu/Q0bhL0CGGgIeFwetAKYZGG0CeOGr4XMtylRqyu1aK+OMnSOBiZf36jqdTBnC4M5te40ZpB1jKYNtP2iZ4C7W/xZr1xQ03lX5YNcOnRi9eOgwiq6V2OM4QtuA9gCGEabRnKS7zGO7yx/rHn4k2C3aUxnwWPNQjrL3DZxuMvGGkTglnEbxeWYGW8YhWvGZ9uAc4bHHPBs6baAdoM/1giaLb7bosFNPpk5nQXAXERPsri91k2hN86iXnnSSX+ZilVon3YTHdVS6BbTr7Ex2T1R7NAsn6NRN+ItVSIGnf17mCtJunP/0cYUdyYvRR562OAxpJBbl3J8X6DIgjUH7PI81IVef1fHXffPUgNSGXhs2IuxGtAdEYtC5fieBIdOdEoTewPsGettqoy1RD9DPJouvqNSOE+V0S3h8ObeqTtPLvpi60IBXguxgRaPrPxhb/vegpJ0uKkL1eIOcQ5P0xFkQvWUMRl8XutxYedG6OCh0Nm2KyFKUNeAcSmNTiLYcFGVJU6PpnIZvP7o4RztdIAVWNfLAGaShcaFejhLIR5Q212h00ELdC/EA1oN5njQvRAZqLPn2DxcML9jrzzxVdIf20SDnXduuKNKFRVU3q83jwlPaptLe1skyVbga30eQ5ranlt91OYkcUr9OazkNN9iLV4vkmXxY1Twa/GaVpLM8MVixf7dpXilYS8Uba68tQBlKQagJ7DV2wB6gli5jUAvR2DSai8lp6j3BjxVxTfg6Wu+OzcV2b47L5qOpG8UpV3TqfU6MUbG3yBZmXtYRzs9eILmVjX57kW6nhaEMmPfFhwDvPK9LAiFpnhacAx41szHDoWF5mIfBbhNg0+eHISVCgtiHp4Stk8IfYp9DKB52+ABKxEWQFDO+D4i+aDUG+Hrm/Fzu8e1GbuCmXsKxON98A1QH9IR9A0mVy15He8iBwyWHuCdGifyi8jnqRRk0C8ijyo9YuxO462e64U8adEsSuufBkzwPZgj8MzeqhLfIXRWyIf6xfqUDSEq0M4XLtNytRKMnj7L4PMhnwztQNV6CIgADP4qkLfafPksuk+bUdBjnjgLNWCj5XOitnnvjTYKQ2rxKQ2qbnadh3bSYUsq1QTUY0NN2OcAJbVhn/6TyQjnEAQ72WiVJR1sYmlT32gZ7yfMK2WSZXUDAw96tPuFffKkrPMLwNo/4LuPtdpsOA0r9Scwy9mSioNUmKu/L0AdXaxAqdU9XEVWOEdW9aBabVWXB/wxyWJI2IiP2+qBLwOEYd+UEUKE4JudIjM6Ues9qrUYcTHvBviw/a8GkOPjUuz7DBhKsE9uQvET4GvIPhMKVc8VZHITDPDQzQePOnEbxHbOO4s6AQJm7umK0Aa6Vs3xi4i+q+XyvOxgwPp2ku7uHTyWP1H1Ycwn6FXrOOMuxSunYWvxOqVRl+J1ZoxcbwyHTWvxKvbq05lkM3bYv2X5UGvxGlf6U3wplcH9Jm5DVCYrRXp05wD2LZEvxYAHMmJXmvowcmNjJ4I9vi6oo5YasFb3tcTiWegQEzgUXMCtKEjxIhIzJ63oQpKrttuRp8WbgSSNo1biQl1pkRnEErnDW8hhV8cHoZP8JPxVCSdvksfdJyXwqJ1xLLMHUPEXyOapUZR4BAPsm7swR/DdcrNKhi/moCExO2M3Zvf7vsrINkfYLbJO6Xe/Q+biobtB1q0ruvtjTm7o7bGRmGojy7XcXXhcgpN3JwiNURgJjrn05gQnv/I20hDwssZlBG5ZMxJYveSz5VJGJvgk1s2sXnKx1+PCBt/Rc0LT3tAbaQLsfp6Tn/B2nh++M8vUvsBqxx1oRqc06SwDPEZ2IaFOj7s15MMF5H91s/YyvqJBu99chwc1FmXefRWxp6BbO5S1QbpabGAiloljwEBTbR+PboIdhAYP9w1i2kF+EBc2tDdYCQf0LqirS/8uRfiV1EbJj9G9GyyOTh5SXVV9cPWgJqi/H9EB43pPk9bTh+hQET2nyenqPyjITq/5Wl4igIR8NouS9pvHJPjYo8dyVIkE11qrQvzRceWViy8UpDs1YuTOl/5dZHH+JL7LS2lELEzo20298sRus8zIzBR+ofCr2262o0pU7kWD67Zfa74oq106+tPM/ofQBZPHhH0qermT5TMC+xaRx4j14DtE1EbUr2zZkLf1RoNSbHgM2UtHLWk+Y368bL6BZhKPBT9eNogpZTR2GVS6UMGh+x7sUk8rWBB/IPZf4Scgg9i9p7UJsDuDe5VwvXSrwwJSXBLUQ/wy0WsZX4rX2+Kxg2DnopfxaCe+Fq/lSwowZ6OzIr0xw0up58V1VzI7Cs2o1uTFh0aPDdCjQsdC4GHvT/rJXc9P0mB7eqp1cUFCSHrlaT2OABeemwjuxOvXkG+1ArpD4MHdi/EBa9irXx5i53tf1Mg5+GUvD7XvTS9qcCP1Ogl/K8FD3VBjRE7WMjdivQkOkPNR14KwiLghcPeoBrvV0y5MnG7pu4xv7eljFgG7XeuuS6GX7/WgdXroyg7tbSSXJRzXkQKNKxoWm13FEDO1SfUzlWxW1W9WTmUY5d0xp2Hkl8eCDONpgqX2pA2w/Em25lfKT9z4UpEbxMqjZYHVwi46DuASvJHsIj/4ODKbEfe5jDms2OYyZjbDPpedZKvqjdA7+38orKhkK6esqWV5jSg/BtWHqETLLzHNVygNKI6jyC1Y1qpcJmwf0yR/Il1E7jT5F5JlJc2i75l6SWW8knHxGQiNqR6ob/xC+UkmMu2mrkseu3afaiKjjDIinUXfKfpJoSVKLU7cYmTafQcq8GJo2jRU2U0ohyliC/RelN2AW7A30QOfA++jBYDvX/Ema/L7I1Pull8sTsm4Za3GiVxHSJJRLxuCrODFAEw+zJTj+lTjTGkE9UBT2jDRSFOaQDnUlPgTjDWXjb3NbLPZP/FG1hmauxxR/ILZ/8JUptkb8UVswlbLWyPCc6OOMu+x8St5/SucJl4Jwjkim2B22N3HBl7l98LrWhhzix9iCO18tzNjkolvZ0R+u40iKWO68XdnSJ43pJmMsTetk2zVH8sovksl3h/GaL+O+/Codl4iTsVbEqQHSYB7k14m8OVJZ0VxHI47mPHn46OwcUfkDm6CU/JR4DnK9eAAJ3A2jAJHnzo72GkOnn347uEDmY/Jo0I6iKzFa7F8Xsh/lYddlJA2yrZYSuumOrTuefPgDNqBSIQTCL9RSa6yyyQ7tXmXi+OsP5MsVi/QruA2qPyZdZLJ3c+8FD+D6h1jjdytTqr8X3XCLFITdz9SZQCr02ZNaqA9dGM1rohjfx/DwLmzRluGy5512DTfqI2Z7+vS9DGQsJQjLqwyEHK904NXbVVTLAuQNjLB2uMgrhFmC27MLdhaiQvVII6P26joE2MHqrtf3UKThffK06bZRt6SctPR3JLq1xzTLSmPEWuKW1JDRnhaSnFbYp9K9kSmwXcDh6SIM2IYwIOpB/GO9rrgGndWo3/w0+GpdQ6bUeiiLr4cMsPdhooAm4XMtylwJ9AQIG0vWXiaDw8R+AUzRxUdmMHvtMhyEQGSM/rYa2XTUqY1pdMyLlS2Ov71M+RiebMoaWt4UTrYTdqDOapVgquvVSXeirMPSd6mytjU5PpZAFqBQwFbja0ckSqbPYskta2AiOxIZaIhGVyzrjrzwGuZShG83/CC7+U4oY119ReXSam4jfXv14rU6O0GXSTxPIVvqnrl3z1Ji5uILh9Tv8boTiU87NAjidGoa8Jvf4TYTY8GxiTH8WCTp5oabQw0m6PHEFQ+x9HQIBeBhxjuJBiNC05O5EGmTfM12gxY4iKPDYTpv4YMcM04i7KNQuyoihInNYK9qdQDwr2m1KqaAVTYO0puWEQCwLG4oFGiBwofHw4gYt5L6qOiX0oag/zD/s0ZdHHU4i2kwHnsxsCiprcWK35mO4Ca/wi9kt6HLDWo8DqD5z7aC3Cw2y5Me5UblJ7XAXS0Vwquwk7l+DLdAF6udYGC36sdhwlML+wixWQXHgm7SXIVy+DzTydtqQU76RyHC9iZuUih27JxkMhXfl3AFG/7joOHxy25uJERS17k3uCaq62OpHWgwJJlOBRoh1mga8/HdYRy7LnqyzfoailMeOpIL3dDjxO7cB+GDxUe6J0aJ/JavCbr7ZqKeS/HCp1kpNA7OU7oIrycCrkW4wSuAsipkPdyxND9YXmbmpnW4g1yYNUtThsykaxllgOCRZ1URy05SK22K8rnRLL/Iw3wTooS1vn9i6AO2BlFX4DWeVSEm8ACvDxoR2WsCSLQy1FpPnwVh+aY9FKXUoywkAMhHy3ZidB4fNDGw00P33yMhcWcsfioyQ9ZxpsDdUP5TEE5o8Zjgw8ufNy0JxfjDYEdXfisIDy7GDTBORfNVbpdwywpi753GFWPpR9AharMqoL8ng3wCw19cvQLDWOQ7d0QfCXXKiyIJvwxxj5h7wFGxmaAWIY2kbFL0B7kQJe/jZ7kOjT+ti/wkbp/gwgcRemoIp5G2oSFvhU6COv89qdZjNl47IvTxkbZlMeobUcH7KhQxG86GtVFvorvIdOu4Q+jg1fwXXLc+v0wKH713iVmWrsfNgW3cu+aQbBuP4yMXLV3mTnW7COMKFJzqBearlpm4yjV2Oods8noApNvMZz43RlHba1TFXZNvl2YdLYxQq9kcGPu8xzthMLbQLtqPKB/h78P5MKEPgvkhex851vw0w2NkrRni5tNmsj4RqVJFOoQ7DIdVWKbWiy4Hpv14w3kMHKlgh/I6bE2dDgwY2mKZ8pnJvgsvIdaawkDOwkfgbvUan2Wh46gPVIrs8xBF5lGQFYh5sDVbw+2ksMsfUdA/9gKLTKTZDK+EcFrsh50Q24jYI+6joAuH0mDbX96yKUY4n7AaODbIqLc3v+lYS4j1B9LPQ7sYoV3Fb6V7/EWQtCN/BhQRTA6GEU6Nvjn1vpK/tw+Nvoaun7xC33EmdeFSDoRdyuTdcJzWkM4/400Bj0dOu2gmR1HmkA2WTpNoZ07R5pEMFo6jaEaPMeagRtL3SYQDK1+fOdIC4uVbJWlHU+3Rp2l2/wJkv+jj3Vk9ZZWD5z4o11Pvv1MqsKDDR24Ox0+zPAoMg8nMH5sHGiVwJaiShtSPLDF07JaxgB3m4O3VoO620Yhy+XS5pR7ljPi/rYTnqjjJWXmDDz4XogHtHpch6iaKzXeuq1fGSJp1vXjQpytusyjbxsdRR2XOfR3atzI9gEJm/KdEny512TEtw0E+n6ED9/+IerxiDD8WyNWpOx5LcgI3khnlJevpZNMmIV2I6FRHjW0yczprUbrvGpQf1WnPOmqNBIb8ZikiQlPkeYGO+ooAqq1W1/eJd/WPtAYfADr4y7lYCew46HVungCI1HZXMUyImLfq0aV6iQmXMhnGXrZ5LAJaaXKZ4LcqCjc1e3krqX4YCFxKR5YssCU0fCAyBQPOzQ0ZTRqpmJJNZhYLeaRBBNK46Emj6UZbYxWwYGsHhsqJb56L49e/hRpeiUyldtbvMG5RDzspfSLSNOsJc1nDDgiyGMBbUjQaDNgATYeGwgjbEYbYAM7qMYeq0U/9nRXtUXSV8jNx0ZJ0pVsElx9HZAjYKU1asLXywCHfF24SoMIr/M17zcrLWJZuNlPpBFJ8ANwDgXifUp4fhQfEzxJiquehvzmdolPBp0WM0LMDQ5YsXmZoWu2AFwtjX4DJJ/wMjcFOcHLyX4RvvDxkpeK0AVQMPpf4TGNB9Ch4Y0h6EXIDGW/LBUn6JjlD8GcSAfoEcFPAQZUD5vePIUnU/byV5qbJ2BG5RB8/XYlXw0w85HfAv2WyVeDyX4UYIRFJgIvpYhhuwuTbRJDFpm7cqSLkKdkFbrTboMcVQrhlbarB19OIPWCIysFSMA63/BP+Xirou/SXCTfQ79jqyx1clWh3+7Cb/71kY5KLejVv3b9+HC3y6XUMp6tAZt1F3KlJ9bQtLCjsDdaGRWp0DHHAdxQ4kHVUsRvNkKXoEEUWnmlRYbbyu8v4rhIHHeR5EZmMvS+hgNaxHHximK6V+RBL3YyeN5ahgdyEx5N5Gq1wFCiUYhartWzJG4Fpeg0DcGmfMQTVyp8iH8m5mku0uKFShrcl8Q8RXtFHnQj9TrJSMazphQdbGeZYB2rGpTEpFmUdJHw8PCjVj/PNtvgebfLdVQIvhT/nFSC4fXZrChv4F6erOwHi+/qLKVo9r3mLvPpv//MZQDAC9UnhrqfxgBi0sX0SdHpYsYgQ9LF9FHB6WLGIG6z4GT3fcJKhArw+D/+1//986/HzbHqS5LFt9KYxoRrV/+DnPsy2CHKA9Tay4zCsSU4YMq/nW3N041Wz0kcVE39wnyIZ9I04kDGshWl+KBuyygYWwMyM0nUfs9tLKRThR36i1ImN1ps5ipbJisodUeGAbvs5WFdZl+GAehERslapO1lxkGkZikOKLW1T+/adKihYJ2SDHCnRVj7fB83Np6uV5QNr+uuH4lGFOrpxfqWyJd6S2PvU+mGi2YkokOCAferVE8ifwpsfc1SDFDVo6Y3WhX//x/NtepBNkdhFsTy+aDyitBl87xrBGG3LAug+fxLCJP5/AsHxub5l8DGtSvCgFO99xpI1CzFB/Vn6yncsVBFKSYoyMTULscAdiVXyiR2m4yYoAZEWJBzI+NdzYRgtgqyoV1t149Sg+AaRRnwivex7MdJZdgqvVOQAa39vkzYHNUvywK4y3Bs1xK/iyxOQ3aK7vJsoAv10lzyhHJ2irNhtk/LR8KRHJU7kBq39+fdvFgH0RyFeRE7qU5CAMuibHgXarUK6RrNUgxQd+20ewdxyr/nAKkd0fdNv+FhnmYxBqxmiEvYwNstyQd35wrGGsvXLMyBuE3iwGXdrggDTtMvHPY5uyXZ4BaN8J+RVAv1wobTyUg+kogmDfmnBs+fNw/z64v7y6uHu3/enO54noVObITvAFO7JOmh4pfzq9nin0iYKuYo/Jijo/XwUIQt+VCvry9OZ1doVqVSKQD5f8Jg/3mH/cRHsFx6QZjz32cLLGb0JABRGUGYJzN8bcagiIEwzNP5+eXs4ufj39CwpSu9VJoA+fjXz0TIpdIEyA2HHY64EGIFvr7/coFvv8UhxiSoD7PFYoaeFErgB1E5Sjixzy6uZ3dY3mWqBOCoPgj06+n177Pb37Goq/JIgRn2/Apdp6A7BGGQN9/QA0GyeeYeAy6ur75iMVMFid8MxqTp/RZ2kr5vkQmmr7Q8IWCGvf39eoHuVPmT0tzd6vafl1+uL9CkxX1fZtS788vT27vZ5Q2W1jSiEycBfriaXV3fkmE/FIkamOHv789PsMTbLeR2exDmt9mCYm/zLDTP9qbnGLi8WZze3p5fXz3Mr09O58HgnfKkToLF7E8SniMtAPe6nHLDX/+v27vwRuok/js30KZ6ELnTBqp9zcPl7L8ebuez4B1DrzxpG2jtSPFY2B1uX3W4RbR2p3T40BUDED94zztMD9z5joDvNe2z2f3F3cPpV9slHr7cn52dLh5urq8vHm7P/wpv6INqxD7bzq+dX53fnc8uHuaL05Pz0KXcoBYv9+3p4tvp4uH86uz6wS5Aru/vHi5D1x6jNKntuF/MCp/E/B8Pf55+ub2e/+P07uFmcX13PQ9eoQ6LEZNXtTSf3cy+nF+c34XuqXrlSQf0xgRFwtVMmggaVvqyw2PiH/eni38+nF3MvoY2Y48BP2wYzEM/LSGXAX9dX4UOfR5yWK6SccjuRn15ens7+wrErwrTNufZ/PfTh8Xp7WnooOyAOopE9CQftMwh7/D1NQ8cwsyu5qehI5mbOosgyUqDgSFznxNYyxhyPSoU+PS/TucPJ+Du1mKWrzJ6iJEdbhx2OcKdLhbXoRtZF3g5vMnqPcVJ0Benf9yf3lK0lBK+epiWH39xemvXOV9md/NQZ72LXheBbQ+PwkDS8wLhT69C98AD6KBr7aHgjfUkAXmZxushyZaKBd09Md7M7oAtxpakXoFeza9Pzq++Pny9XpxfXMxCwTrFuejur+rF6Glwk3VpEHPaJabd+pwurFfnMnjm65Xn4bu4mz2UbvuHk/P53fk1ILJnSIqFurEfu7m+CF0EOTU4OGH9p1mUgwrg5tyVI+b5/XR2crqAeHMaJYmZzq/AQ3KzKBfV4rr8D/84D56onRqk26nZ/B9X139enJ58DR6S/XBHIvqeqZdUxqBHW7zaB2Ja9uMDg0nxVosizOU9TLu5/3Jxfvs7pT2I14DGG+HpEk1/IthrNixG2kkaLYsestmyUN/C8xuHP0rlnL6+ujqd3z1cXp+EDu0uCdpR6vafV6FHpV6oI5G/ZYDXanyaw133+uyMDFwtl1Nhk1Y4c313GvTl7Ot5KHtRhngBYI/NihCrh5Pzy9Or4oT44vTqa/AixS/ETxzqcndJMFAWDpuHxfWftw/3Nzeni4cv1/fBqyu/EAPx/PTi4vah+AWAs8mhwMFYRrJczS5P4S21L8JGWtbG3Sw86tqpwcB5fnJ6dXd+dm4/2j/vTiG9qSvBQFk0f0xVtgUYCHtOCsgO1C/EQFzUBLIr9TS4OMuPd7aYXULqtCvBQGk9GTYeZef6g35/txAx8f7EujyohPvpBpSImRen9SLr9Nvp1R3EW+GSoN0GXFzY046b6/Oru9uH+6vF6Wz+O2DI8oIeiTR9qB9FyB+2mZYieoK9y+L7neF19+z+7veHs9n5RfBef8CorXl6sG8XAzf7ADOqAoRGIN6dh5lwcn5Lb0Wc5NMb0vSbny5uz2/vbEnbyO4XdF2n4cZ42NjX7Gweb/NQvZn9HsbeX82+zc4vSAeIppXbTDyLJJ1yeKhHv4fZ3d3p5c0d9VBRj30Pwhi53piJh43Smofrb6ehgRB+k0oLHtQzJKc8zIybxfmlXVpyNMCNTtZCv71H49sVIWxwWk4xHvbWOnYpdTm7/Qd8ZebUIF6T3Z5e2SOzIjDoYT67O/16Hczp1CCOyLNhbeGjkJ+sCnCDDjxu4YOZB2YPF9e3oTv0ASNiYcRDqnJYkCnIiP2u9uss9JrckCVJZPPF2WFnJWC35iDmnF/dnS6uZhegyLgBc4oU75lIETFyEHMuzi/P7x5O/2t+enpC2VnSZJ2YB/kaSRlP2GOuru8e/lycQ1xGA8ZkyjzYpyrA8xrElJvZ4vaUupVthM7lxE2svuDw8O38+mJ2Fx7yP2RP9RbWw3Oi0jo9/DRm3c5/P72cPVye314CfOcDNuVF8qeHdZKvwSGbIINO5/eL8ztYzO+QPTLa6sRgon8h5txf2YgLwra2zWyQxXQNzI5j5ANA8eIO/5cYWjPeXF+cz1ErxlKB1ov3ZXZlY/RRU2CD60g8iswG6hPMfZXsoX3Q3eIcO+01DbCvPyc0M16YAQ/Xd78Hb7UPm/GgzBNwtx1uzN3p4vL8ahYaUuq1onp2DHa9ZhR+r8cWcTuLa0CD2pUk7aGV/wJJU7sqgBW5FxvnbJnbpcF9+K7HDf0Q2QXBFrrZGQu/OL25OJ+Hxhv3oLXcpEkkmGFv72ZXJ7OL8OtVPd7ciCwWKfRy1SByt3fdze7ug3f1RaGP4SXZo2DdIqUSpwuhwUrhMxgFDI7NbNEiYzBHoeL8GQ1aCgfGGGCcx6IBTOGiGAOM8Uk0cPFOiDGw15gGqxjbKcId0iBE+z/GoCI9Aw1cElfAKGTU3r9JTLDZHwcMva3ZpsXd0hyFitjHN1DRG3cPamdlcjdbfA1OYlAWot2PX4Wu9BsQRyKDLfArjVFrewQeZg8yChG2gm8iYhbvPsROU7u/+bqYnVQ9AxLa1RegbYL3d7/bKNc5xGftYSvCnlpvmYZXr0P6UIqP+t4NdE7yWROJjXhMUjveo+aoYJN+v7uzp93/L+Tc32fMkzGbBy3/BT/3Dzbj+mb2x33ootDHrzbixxa2NAwGt7tc6vrXKpUT13+VN4zIAFO+BTMR+mJ2dXsTntDXC69Flm+guX2D8b/ZmL/rK+oB6dnG+KmMfzTyzGV1Irqb32e30H7d0vh4M1ofj3JSa6uPiuels6OK+uI0oNNuqm4QaEJVijiwq7iFUN5B2mePvTj9FpwdzC/EQnx+RUTsEsISf943VxHH9jnw0qk3i77/KR9vVfRdmpsqiGEHvdxmhZ/SD31Qi5B7977SWLiyACWBCqoc++e0v25yo8Xmj5fNl/Lvbzuv2I5i8ohQkpZvNo1mejPoN+sav17lKh/76/bPKX9dZZEwX96MzEMg9qVoWew8sv/U8/KPg7hcCpyM5fPKGMZSgZOxfM0Tw1gqUDJqKYzEfGqnACNheCU6BTgIT4QRFyrPG+/JQjgdMhy09Vz7rY49RGIP6XHwI3F56KqX8sbS2D+n/PX+QwMjGHaF6EmabwaMJjn+9TM9SSP9/2iQz7/QcqjYNry5yuwtvtMsUnFSvEoVgOWU4KAsZ8NLmediFdSinQIchGfa/gOArCjIQXSeFTYvZL5RWQ5i60gwUt4Wh4fn5dkhlHMvwklavIR1sgt+OZGpERholx4H/zehk6DFVKckOdO9WQbODFUhYpLysYM/XjZ/5SaG9OO+ACnhUmxT014j/C6yOA1adw7JkNLmySoTRsZ3jTfYxkP2SlOy1e+ujsYpCpATzKq3FMMwilKELDKrevcsiuQGsgDwKHAwfkmyOGQ73S7IQTSvX2gIRipLsjDVjzCEMxUlOZj2btUblaaho+uQDActmI+N6KvSSZqGLDC6RTmoqrXLXK3XiQFXWl+FkRVLyc3XXQdieZ16HPx/2Ac9Frv3PIJ5m+U5+ILXvZ2S5EyB6959IUKSZWrzv2R28g5cjXRKkjIpYT4dB7EUJagZgrwzVQlChv2b8GMZqhKEDEkW9iWKv6f9/aCvUPw95e+XD8mP/vnNM+mv52SH24ekCKmrV+3Hktk/J/71MAdvVYKYIXQ83ZUh5Pjxsjkp9/uNzf6NSpMohGxAhZa1WqjeJn+HLHjaBWmJGgbPhZErFRSz4RagJSzXJuFVti9HyKOliCErrVY5Lp6r7foxyFXmKE3Ilj+VcaFjaYq/p/z9Yl8QAlAUICQwAM+gYfAHbs3ytwuZrUzIUmtfiJJkm8QhDNskJvz1Z6EDw42qEoQMxY2s2o/yuxRhQRWO0gxswcNbuyCWaB+uufvbTMXyX3n9pzXYWsXbVpBm688cGI2Q4OPf9tdCjNncNQLZS/GqmE+8VWikxW0r9jC//rw3OVJZbvQ2Mo3wimCUo7ZKCFZbzRdE/aRyRE0dVcX3XCaP/z3J/90m5ioucvyP6h+S7EnathVTgadqheAuS78D9kbk+YvSMYK9IfEeBqC61lHvislk4NX7vZdJdvek1Xb1tNliDKnk1klmmnLvZ9jd7voR0iTXPaYJjTH6jcIUo9/e1ZDiJrxEmLATeAd4k+aN68Ph7CbNO5eHp0T/JnWyfMPhP9ca72GC+i4zDH5V/h3Qt7lNArPGtPuGxDQGHP/HL/slZJSqHENfl++h05Pubqsh1pa9+25ctCtpKs/cbGvUWbrNnxbqJUfQr6SpIoTE1qilVdSlIr81efkkPXxoH/Oi/cju19j/2OgRe+31TqkLoVeyHdt9gNNZ+H33Q34kzL7IXUueAe3R/qX1PbavFsHBC8E8+Vs+VoJ87Gvx+oUafy1emS3otOcki7+JdBsGvyv0/u23jYJtt/vaaIxMn49//qV5a2qbjZ4VnIRleRq25qipZS4xZHV5erJcmi9KpVKMXnY58HJpHnciPIzNC54wwFKBhW7e9MiC6CqfLgvdicDWXXU1iYeuf/EIxtjU4SRtnltjSEsdTtJGUAYGtJDh4WwHecMgaw0WwjMbMIQDXFYSLHxfO+FHIMJ9DBML4zlqUs6lSZhm5Vyai2YYDAiuCqRho0MPN/tYGxbGq22a4gCzUoGNjmqGsZz8s0yDGP3pG8TMLYBoxmkA8806lpdk3LS0zGPn7VPAoZObso5hYeHbXf26TCKtEDtVS7qLG1nXYrzMVyIjQ84qLRbi+2bICYizClphofvWCUkBAe7jWugZjbpPMvNbO9gznNKorZURlQwJZ9fn82bkoh1QM4JzV+j9fT5tFKzPZ18bPh9lqG+vwwf247nIOt6ojcoT08yVFY7XkOAg1HItkiwJWwF3EJsaNIzNnitfNzIyp+OPHByEpQbg3GEUoY0//ZKszltXICDVKOLHZFXfpGDjvE9oQLfMpMh+XVCS9u0u4Vnn/hOMcX+LipES/b3396x4KM8z83PQTsfBmFQabITob13f0mIjDNreugFBu9pRfPcJwUfe8n7l+4TgM295v/N9gv/QW94v3bwxCwQsJWjWi/0V9p82IiJ0WVsW+hAr7AYKwQq7qg3vKjFt37oIR9wJ0NA129vGnqeDhpYmYKGCGltGUgYPLk5K8OgykjK09zohof13mBG6k+9QYnfyBzmLyyTAbUETtNBB7gvGkYI2Bi5U1M5gDCtga9DnROwNRjDCNgc9StzuYCwn/qvj9gcjOCEbhB4l3/heM+K/ON/oXjNiBvcakWdsL9TRc3mhwjiX7yjxH5txLt9Roj8331xeMoZvFvqI8N3CCMK/pFb4CefvWoWEsrOn6WReP4wYlGmdby/TwEDuY+ZduM4eZi2NTqKQr9hk25fGczXb16PSWr0UKbWAZKXCj0qBg66TMx+Cl9cStHxB91W6ra13V4WEKOxeSr8HjHuD6TCVc3yYW5vj0IsRvbIfZNToEpEMIM0q8tbmPj/TfSaeRZLa/xZarX6Rd6/fA2jIih6oPc8ZbyS2Qf38IH+ltycH3JWCWWKb11zFpNZYzajUnN6i4p/ojKnkprejuDQtwmKRDxnT1JzeovKB74UiNakU1epdbfpLZfQ2/V2KvoNNRphtTjwolKLvNiqUP999AITKrPVOd3rLqrwKN0+CdEqqZDeV7DvYpd+u5KsNtNmoJGgredA0/ZbJVxt+UytPb521hc6iUm0SKzq72CS/UxuVqlUSidQO7YvizWhC25Lc7H/BjvO6/oV3stde+7YSXNbW+tPb2tlVlG8ehfoCGqXefd/QZUFuFJoV4ltPq/UmlYExlg7MhgoDZZVb6DxkodyDrERAQdxuxu7d6eKhi1TGX97u8yCHT79Ca6nHt20OcvyMIt6I3JxIEadJ0Hqwh2t14r0OC6uWJtES2QJqCRbCbS7zb4kcn5fExWhFnisRIsqmf+2/Rf6WRedGamGU/t8Y0kIpqZR4aIVeUzRPodf0rbPD+VWLCAu5qjQ4CF9EYuYkg30hxTDit/3A7eeGwEMoE10qkvUcj2hlODljrTYXwsgiZwqG1AqlwsjHSoiBdSkSVGVW5TnIkiwJuufYZ6sV2OhCneceRFnJMHCutMhM58UuAGchE9UyDJxJfhLmHeshJnncdYWR0a2F/j6nW2daOba1Zisy0qZsk4WjELWEszp6r8NMaldzVLTPpRYDsZapFLm8FEbqRKTJ3zJGD/iV5rqhyTj2V79mq5uK3FY3K3HxVYnrvNCcrM6LXyOq80Jrgjo3Z0ov5CYNil128pql0rpWYqG1m038dpWHrnKXo5cNlQ7jusHuNs6Utu30RIsEtXWxWkulbTuNKy0O4sQ8Pak0Xsh8mxqUN6CW0jspIu+a13M6exSZXb4ER7l4NT6SV9VBRudj7VQdjy/TZQGRZ9PP720t5VL0Dj2Y9HU+Uqvx0NG1HEc18rQenyVELWi8HdW8cQkcHX12VLJr5Eg5bIe3NyA6wIdr8xzNnLNl0zfmEfEZaNSdDCWnt33ix+mPOkIzjs0TjMps4/EEIzHbGBwy+t7KPIecalTlkC250xREHL43bYIc1RKwyqvrwn9MXURo4xB3GkyMTyKL8yfxPXz/3MJsyjCRhl+LcXDCb8eMpMzkSplEGBnbM0BN0F2O9pJRS5Ldgr9yE1/IZ8DRm4f/79zEaSXIRF9GyJ5nS4WDLnWSUoeMtXVQXG4CcZh7ERZG4OFwewTDHbseIgy8WOUbYrn4MIdxLUqK47gDrBstrdSZfYtbpYvSvY+jriSXSm+USvVOkoW/vlqI4IXeThzPB4tb6kPiQpcOkJbRpaBDuc4Cy+qgDuQOkOZPWxOrl+xM6ca1OOTYX2kulS7/jnqEGFpaw24++iQ+yNbRA0ayd3TU29CVNszSoM9v/4FikTDqMueZSFL1LHVo42iVe/cW0adBNoN2tXi+vTBGrjdBZ0QO0IYKC2Xo9VFXXfZujCL52m3wPCua7Sz6Dj6/8km8e8scBEM2Um+9eVrCUqv1WR6yOximt3rLHLJRCCU39rk4c2v9allQoO6wAaVsvpdlt0NR1r9RfLXv7KFXIvoO7Jm7oh+lR7aBaHrivn68/sV8o7Kg4diN2xDiYi2zlpB87qNSCxpnMkTsbKeoZa9X46O0XJ6Fr7/qCFe+hyxALH1H8bdby6VcK/1WBqTNNhuZxcAztmGhd283I/CQjedATXpakH2kNjCZ5RhT7Du1wPSWMDvseZ+9msZhTK09rUWQY8Ux1mBOF2GWbHOe72J1+b+Jf7xCPfY9LPShxiueR8AP1KR3/yTWch74xvIYYwph6OPLMFuQY+/QG+EEvWK8HRRjr88YyrE35OHzZrkz2zQo+nlf6EP1cw8eYT931CRP3/CZQtQ3xtuxEW+pCn9LaIwtlfS09lD0dZ9BlH192KJ2X7enorOo+G3g5sOj8O69e4gL2a19leb3uqitDvIbDsI39JjJIevwQXTMAnwEe79tL6q6grTqVtkP0Z77RAQtuV1FRKc4PlrgSc5oTmBfc6Aie5mXttNGtTIqUmlw+2yWe/+22aPBtstWtXhrr4j1vQgM6dkXevd666AgK61RG0TxxV0+aHCxk4wgarfLhwnZHcOIjYTt8lKFwYaxQ2Jg/eSYANgx3KDo1y4uKvTVTYmJ2Oz1e2Aw1mGy0PjBLhk0eHAkWWjkoBMPGjboHi/bM8xCVs8CnL4+iW1uws/zPArvPvcMcSEnIl+l0cUxDcIjIpoCyUNXxcN1Dlwbj2DutmnrJThJIpuBTYTfPHWW/wDt2UeFbs2u6iJrEX5qcHs4wDvcGm6kzpPc2IgkbMPoSn24NuIEJG4uvfpkajkeW4ge2wixytW+ytzRkNmzV/qDtKI+E0nDaVfU0EkgIBzRS14IIgIRA9iDL797ocH33w/QutrvrVFaooJ0BnU+SJseoiNp3b5qJB0Th60gHRAD7QGc7I0wCXGwB7ICeg42whTsMRjQnvDHh0bZQvf+EMguyOnNCLswZzij7fCOwajAo0GdjzQG84QdDVcj/RjstYJ+DGaOohphFCqICmQJbjZhCKECWUEwm3AFUAHtQc0mfltcswmxHd5Rd/4ko+/FA1KIIbcj8pHGWxca3WDbrT36kdbNTz/MjrQkTrS01RZy8nDImqYm/7dA9mKnBUwLwgGL/P1Zab3dWF8Opj+3RT5Uf3agEfbnTu0x9GcnP0N/HmcJtje4rCGa0AYs8LZ+RJv/cC2do31ztWqyw43DlMgWS99Ox7fOs20aHA7mKv6RWmkbiq6l7uuKvrV2melH34P0uB1exwCajd1BZoL9XAeccBs3gh41bvTIWVZ8Tiu848mFir5DD966Ah9pTOli0Y0qzRqjH1f63PQjywgLkHu0nhVE+7MR5PZNC6lvkpA0tEPkpd4GlC85jBw5uvTImcYXjyWDI8yFyjG+oZbERxtl2mC048y+3nhGmi47z1hz0AqC0aZjCeF4c5CeoN926Il2FV76wb56n220et4/ig42qiP00fqtC4+293ZrkqcPu+3g6ckjLSLoz06rCHv1SEsI+rbTEsa5ecAyb7//YytstuUEkNxwQOUj9XgnG11371UgfV/3WEDf0cfaguzlbnuIuvhYG37s/u6Ew5q9/MR2IccttzVMg9aQTd4R61au1jIzBLE+LqWPNHJ5+ehGL2dl0o9gA5bQj2IhNq3Fa/XnCL+k37q1eM3L/5HASRliFzDHyiijkElWgBYhxzW/OUxj2yHbuuObfYs19M3kRqkPMG61WdBj1L5CPC2ieBUadNuhQ1oIoW45HGSNVLpdZ2FdsVeftQQDH+SxuR4h5oG5MYzqJTw+s4uoXuCxmAcJjR1Grux/RiAWIlkpQsPYfqVHoiqwLM7ApVXQjW/XlyXsG97R+URGKpbAgbEq/JHG6iYS3ZBd19LA+bX9swX4m7ew7Qm2/Ud8E+hzd94xy5V+3N92JGAvJeOmJCP/ZpO+zUX0JBcyh44DbXyrGFlFXSny0cfF/0wAvRPiZg18VWqYF/i01Hjm6skyIuhKbQLqXJoiZcdt9CTXggQ9l6ZIIZLXkrRjoXd2gde9LfmR5pUdD92kUlSONx8QwW5gz0y4IximLhf1iGVts56tFMHqdgwxcNru0iKn62FS5J5mz0q0rzlAi9rdNGBJdjjDrMh9zh6WaK8zTPss0sCYIAdpLUJI2coUVnQHmk7FR7lU+lQUy3Ys6VJpKYoVOx8teKe7x0Tvdof4UvGmtmjEnQoT5VoYqRORJn+je3tbiolXB7/l6xnzoe/3juYE78CalOhN1yAjvqNT93Dn2nlejHugxfO+6AdZPXeASJbPjfoZ9E+fZ7F8JSC2/z2ptAiJuyt+ewB1I/U3kW7D+3uXulDbSP1cqfFxZ5CFUxcXtWgaRamyq22awtakPVqVZds0xS1Mx1BvtIwSmy33SxKYONKFvVN7TIBpI8dyg1f/XWT08n8MbR6JwHNYF2qtwsj5tn5U6d5fewtZxPSwC9G9xzbHLGfGWGHeNnjqSoSSErvW7iJiFtujCGda21yFa5kVbzGS9LeVNMLKxrUsR+9z2UGx2tnRo7y0o5i/JLavUEE/FmoTUCuVShG+L3ch76Q4ed8MfqiwsKUOI+n8SeDXxitpolKHkfRERslapPdZMV+FO5Ic0HEpud1LcvKrbWjUlA+7VmKkPUuVIBmVl5UQI+tXqZ5E/kSy1FxJsyrlGNaaHe5zmnkv4Z7nLlS2ogBNSx1m0uNfP/+pNMn4kJZyL6UcI/ftk9IkbSGvhDhZjU5o2kNeK3HSFrsEEtpaiZ32TGnAYZkXeak04sgkgJsSmpv43ix/o1oFb83yN/418P02iX9PVuFxyS7ibRI/lVrMxBcA17UHOEW4sA/zJrl1s6FZkzwrZbg4K38gjYu48gdy+Ih9zCSdrsnN3PPs73xJzFpswi9xONG3afpY6MEvbowjL6dXGupSi524mkZI2kg9jzC3j+KcIqep5VKLoZadp3UL9QKq6KrcBzmna9KQHNLV1TIc4YbjrCWYCLV6gc0PLUitXnATg4MT66tuAWIc1YfZKLzUXVxKF/VIC9BdnMY5fZgW4Znu4hK4pUfwAn3SPVikQ3oEKcQb3cPEuKIPM4L80F1GlBP6MCPWA93FpXI/jyCH+Z57wDjH82FOmNe5i4lzOR+mxPibu6wUzubDxBBPc5cU42Y+TAjyMXcRUQ7mcYxQ77ILFetaPkwM8yt3WXFO5RGUMI9yDxPnTh7BCfMl9zhxjuSxnABvrJsU4Yo9zAr2w3ZZ0U7YEaxQD2yPFet+HccK8b26UDGO1wOkQK9rixLpcj1AqJY4uqI8FVnXj6NSeZnka+tNCM6/1C37/v4cJxHWp9OrIqqsSh5aqjxKo7lTlct54IVsD7uV6l3JZuYv/gmNXqlMRg3KguRGJ817NJY/l/pZavvneANKLa3ew4K/VEZmwd+l1nQWFO8j03TdUmvqvlv+6qXMc7EiM2K9k5vMDmMzgwXtk9wG7HTYZqnqcdebp8CrdR7eUm3z1L1hx13f+u1KvprTLC7eRSMwRL9l8tXIveBktlhyNH8pwsncOSFK8ju1UalaJZFIbbnytXW8JUlu9sJ2TtC18LTWaZHltiSxbbXsZJZ1Vvy3MovndpkWnCW6U/LdV/suHuRav1s5RCt9NynROn8ss/2T82yp0Nz2H5JSiLB++600KDdbWQDZJjuDgLCPpAAS0TRYjgoNRP6ZqiK8jGtpdBKFnCI06falqbk228c0yZ/Q9bfTIa3DVio1ezI9D83a0frGVgGcseMAXcis04KCrCIPsVwF+QPbOBnIBzhMVB7Toz5eKcH09aqTeRxgqcFF+GYkDu/NSCa2SGSRTMNy1DTRyvKwvBUHyJ6ERtWaFeCqNTu/QrGqsgxEZ0rfqKCzrx7YUumNAp17HeBTWRa2vG+h7UrTUsUC2TOtAFMbq+JOfj7+DUe4k+HlPP71MwXn8a+feTk//0KB+fkXXkoKxikI7+QrtE+3KE2pQ0xaBELhqrKQYKrJIgLq0zEKsNLgJMTzsdFt85Bj/jZXWZaBaJbFX6VB7skKJZHFNr6Da1dW0/4pEmgnrjFfSglavirqDtX+Kg2mFphk2P5bKPDRYdm4yDbPuGnYCjCxVTF/KLxKg5FwhvaoWBVOr4rVRwMysW20tBrVfmkRnASz5T0rtaqNEzwT5jBxaALMJiE07+UwURFvivrAhQLTFy7DTHF4hQQXX2iUaosMGps6zGQCQ2WaSAb4DPMBomQtcyPWG9SH3KkwfUsbfYkCtAJMbHZhdqb0LPoOZLMCS6VFIUDMZk/ggAdQR7vCaCbnsVhxgnZXRl5ADnEdCh/iMNfHRXCo66o0z0Ep7tTPYwHNMeBoG8owImojStUJrSj/5jL8dNNnQPkva/iB5yB7v69CeufH6Y+kPZA8oGIwlALB1f+KiKH2w42xHIPrmL78uF0upZbxbG2vrIcmu3CT15qi0IQmvRhrAaSNOmqbMOqHcwylHzxHjpqdRM8h2J2i79/fXEDY/tatH28ETh6WItsNC0yJPUTZiiiJ44WM1LPtxWhWEce6IcbFbGM3E5mfabVGI1day1KLi3glzbWexfgaXkmjtIg5azfYl+QEBXuVRlIavc0iEZQTww3aEOJiLVJCzfB1WujAosr8pJ3R/856ar4U03oAb6PUu4/5XRbkcN+sEM8MX/w/BGBVnoYM/cSgo/5S4POCowgBz3X0EBEvdXgYe6P3XEtIOFAPtRjBo0IM7NQbwWyv0oTF7fWbpXw1sNC9EXyhs0z/kwMnmDFsKk0fRfQdWX+1DFsd5rt0RreBj8j0WPNdJiPoSzLjeKu0Ozf1Y0BI5ur8ftOQ4+BOk0gGvq/ep7UiwFfVPXOQY+b+M9Rp3iiFnLk77s/wV027KKgXTZu14e3mwd27SYfo1ge5gltaBwzcyHpknUZ2H29OhBErLdZ3Sl1Yd3SoU84n8e4Lx0Ew5CrSW2+e/hNXfxz4ytawCbUo0KUQasNavJ5wmLEWrxNbEjZSDNPDho1QYsj4O8yNGYzH0HfGmaxyJNlfXchNatO41rvX4BHnoNj7jz3jELGj0OFaJXK9j7aHyBkfZlmnrW1WWsTh81ij2Pu3ny4MtqU064SqTfQZgaeGo+gAOZUchM50SnSUgZmT+oC9pEl0bJD8SH1Ad2okOkpQFqQ+picBEjVnYK4jH2cvzREhJySjkYPTncyImjM8b5EP1ZWyiI4WmPOnD+tN90PICs7s48AdSOpDRxyWv6dP2U3dgyIjz9LT5x2ToIfYBlQuHqcFB9Lw4FpHe4X3TWrrHYSm2XQVf/cVnxcKufJz1hXRCnCAmWgfEERflLoUr1UhGkOKv1mL1+edKOsXAKxyh+DpkoeGWBG4CvYb0FsN87NDVsl+AygTiYZYAVpF+80gTScabgdlhy4Vp+nNoD3CIXSilKhBdkD2EAN2UCZGDbcjfI9xyBS69Kgh1gD3IH5jiFOPBtkC3qMMmEOegDTEorA9jN+K7l6GhZx8j+O3hy8ZabCNqD3QoIUsKUkPtb72Hqk8+V2ol9DdUbvgu++LHDjIHVGnZoj2Qk5OoD98JGERbhZ4KOiuTisEPAscxwp4/dJFinj+chwn5JzVBYo5XfWTNnp4WDpXklyuyL7cyfAG7cCH0qSCLpuS5ZdlS+JKmsGVPH0rUe5WqsStuKythClb0flaGZKhkmVCJU41SpJnlDCRJzqLJ2mKTIL8mAypCMnyEDIlISTNQEiePI8ocx5h2jx0zjy2hHnE2fLoU+VR5ckjTvJGkuGNMFkVOlMVfSIoqixQlCmg8PmfCJM/oTM/saR9Isz5RJ1UiSajEmU6JXwupQMjplbrucqWyegng1vjpVbrqC5NTHWaPUORZFEUx9Pfs5f3fr79HEZVl/oIe/gWC34vv6uQwUQnGMSdQs8Fu9HKyMjI+H8AfLLj8FMV2Cfa7GXx9wDfqDwxAceuLvqGxkQm0Lgy2lagXRoHOQPXTx089OnCWMpg10cXtOsCYWNFuEY6Y4fXRcLGHj3J6PtcbESUmNHpepxDsxWK9kLv0QWjrbYyNwSDSSU1NKbQ8yP8Im16v39kGvZwv8kAf89/wmYD2K/Spkf7Vw5xAnfmbUr3Dp2tbgE79zZvfwfPxgrf2beRvTt8PnLAzr/D3PcAsNECPANt2L6HgI8V4znoUA94EPj4VfkXVxK1rDKq3OBkcqLFVc39LaEBf06mIi98H3f1t8awF0qmoeRfXKF2ZD7/wTEI/vgD+Q+Oaf0Hxwz+g+Pp/AdefKj/4Hgi/4EXHOU/OJ7Sf3DM5T84pvUf+Dlhq7hjFv/BACXUf3DM5T/wsuL9B8fc/gMvO95/cDy5/8BvDIH/4Jjff+Dlx/sPjrn9B+PYwf4DFz+5/8BrA9Z/cEzrP/By4vwHx5z+Ay8z3H9wzOU/8LKi/QfHzP4DPzncf3DM5j/w0sL9B8dc/gM/K4H/4Jjff+DnR/oPjnn9Bwe5wf6DY2b/gZecwH9wzO4/OB7jP/gEgv/0gfwHn2j9B58Y/AefpvMfePGh/oNPE/kPvOAo/8GnKf0Hn7j8B5+G/Qd83LBV3ScWf8IAJdSf8InLn+BlxfsTPnH7E7zseH/Cp8n9CX5jCPwJn/j9CV5+vD/hE9l9jSBWsP/AxQu/v3GIGesv+DTsL2BrFzj/wSdO/4GXGe4/+MTlP/Cyov0Hn5j9B35yuP/gE5v/wEsL9x984vIf+FkJ/Aef+P0Hfn6k/+ATr//gIDfYf/CJ2X/gJSfwH3wK9h/QbtF6DoXrjV39jH7iolXoI7gTmih4b0JdG55NrX1SEYFXFWfgWsnxaZdcYFV5BrKtCby/2gYri7NwqQfA7dou3V6Ek/HhMeSB4EHSB9C7wKG8SWakfhaB6xYfckONlTrkrZ9hYsirP6Non1SO6ehVcXquJEvMw+N2+RDyzK4DsKtDT/qvl8CboC2+sjQ9VbCft0XVdfNSUa3FK8VH7cjwcNavEFHAdrV4iO1/fEhl4M6jB9uQYeDcpiaJRG4ejMGM5l0detKNyPMXpUenLnZANiQY+JTGjNxVcQYurYyKQl0Mbba9BB/fw3NYHuEBzgdgAuFRvD9eAneGLcSyND2VlkXhh3WSPZgnrbarp80W0x69gnzsVYZbAui9Eget0W8krG0detLcxGny+PBkDKbFtlXoKU2aP0QCAbgT4GHTShnMrqGpwUj4QDA/OsV4mJ+lTpaBx5U91p0IA6P6jlq41eWZyB5G52r1sT0Ep2kNoEN92J0CPd02l7r4j3C8hgQJH0minhYhNl/PCMbgtD09QHD2ngN0WuYqfZazrVGoublQEaUKG+WJtG+pi9Lnj2SNm1o0PadxlnAXbYqE7CGbnGaZ9z1J6JFgDhJaVUGRytRBB0loOoorLK2ps94gyU3HsK2kOZFLsU2N7bxn1s26CPDX9llX0sSloO3Hhd8W4rYdw57L8U8q9UGr0hRUzT57n8VJlAR3206x9+25LhhM5+3WCYEX3onY88NTnPqOhA9wNTvZOWKKR6KH7mGc/M69y5RGIDtb3xU4IXzlQblMsrtgL5LTmEpwnWQeL9L0xt2F+W6GzHK5byY1yOg3GnOMfntnY3IZbfXoVZPTjJ3Euxhg0nw+Q/GbNO94sqbF/xbklfGZ4HDLTGlGiOfGbULPdzMhfqiLwmmB00nBawR8/+Ne4/W2QIy0Ybsi35q0tzHiI0bulZwWjNku8VkUsoPyDP3hm6gBtl8/79D+eNnM7BWvbyLd7ht1EbO0FJEfs1UOuY1qDRFxspZZ3orqhNActXSCKq5dJR7MZ/s/IhF3GiR4na86F9GTXNhLCt1HR0ex9opTfuNlKlaBdefmOaqVUL3YWVse9OKfKMgrodBPPxp0I95SJeILma0aQawY4koxrRUnq/Piqs2lyL+TmFGorUs1ttovboLM1bYR2IxhLuSiSm6yeu/GrGAscAWt0ON3x8Ci0JmwzrQkdLTuFKYc//LiUOI2VcbaoZ+FCa9mB91RqZunyuiWbnAz79TbqIUwHBt0IhCAqaUw8o+t1G+3Mge0aCdzIfrDiuY7UVYDypMsMvS8lmOCzo3QoYOfs01XOoSYrkHiUhqdRKAhoipKOUAUPSJ0ndGDOdrJwCqvrpMByCRbkVCWOiyYto8CB/8W5l6HBbMau9GYex0qTGd/uVEq7d6+C0BuFKfsNyL6sU20rJzGlyRoR5Vo5UBew6u2WWfes7ltLr9LuUmy1Xl1cYjIjKZ0fSeJ15gkTok/hVWc5DusxetFsix+iwh9LV7TSpEXvViT2L+7FK8k5IXgRql0LSCvnwPAE9AKbQA8ga/ORoCXQy5llZeKE9R5A52o0hvo5LXenYmKfAVf2jnSxrE3SpKu29R6nRgj428A92AP6mgnB/YUtqrI53Ets9vcRiIN3c31iCutvNLiwF1J9STypxstowSwmeshV3qbhh4HduvYC4gKCc0di7dNU3R7rUU4AFsXI4F8kAuRI/HM2waNV2lw4EGOK/qA1MNQbzwvjhkTlc3txvU8W6pQ4p4A7egeB39jN9BRJRVej/0a8jrNRR4+OHpwd2KMwC8in9v0gkTILyKPKjla6E6jPSlnPMD5abMkqXc5fCLvoRxBZ/BWdfiiQLJCPdC/1Wds6BBhdr7t6UrLPD8TSaqepS7OHE6fZeiZjk+FdGgS21BX/CDWUS0YWrHeKvOAyyzeqIS0So8amtz4Gy2fE7XNTxnMqLUnNKcK/DwP7JrDdlSiCaSfhhpgT72kDl85DFtQqialKoMJzmEHdCLRKkoaliPT5FlqGe8nxytlkmUSCYATuI95tPuBaPcDWecHYDV/wO8ea7XZMJpVyvMb5WxDxaEnyE3fL0/qp98aNdcyTkADZo+qSF4V1XqwGm1VlQf7McliQFCHj9rK9YM6OKBvytAdOuzNTpAXnKbVHtVSfLA29VciUspGXUlO0K5V1pqeaPBVtqxE+6mSqQ0ofuEkKQZYod9oDChE46YonwEGdkzmQ8eckQ1CO2eZhaymN8RM09UgDTet2uEXEX1Xy+V52a9gde3kPKp/4bH8harnIqq/V6XjTLsUr4xmrcXrhCZditeZMXK9MQwWrcWr2ItPZtDJVhcLP46PtBavcSU/wVdSGdgT4jZDZbISJAd3Dlo2gXcxyEFM2BUmPjzc2PCGUK+tC+moJQar0X0NcXgLOrx4J4ELt/1mz4tIzJyykgtFpppuR4CKLJIpRbOohZhAV1pkBr4I7tAWasj170HkJD9RGch32qFN8rgUIgTtjFyZPTeKvwA2Ro2StGNW+G64i3IE3gM3q2P4GgwWEbHfdUN2v+yrjGwzBN3V6hR+55taLhqye1rdeiK7peWkBt7RGgmpNrJcrt0Fxw44aXd6wDiCkdiIi2VObOprZSPNgC5eXCagFi8jcdVLPlsu60dZ0cTqJRd7OSZo6C04JzLpHbiRBoBuwDnp6e6/+dE7c0rt06t20WFGdApTzimwI18XEOakt1s7PlitVWBwqZu00qHD7H5tHRxgWBR559XCnoFsjVDWBOV6sAEJXwiOwYJMqn04sql0EBk6uDd4SYf0QVjQQN4gpRu+u5iubvy7FMFXPRsFP0KXbpA4OnZAVVV1wdRvmpj+3kOGi+ozTVZPzyEDhfeXJiXwpQovYqevfC0j9wGhl82SlL3lMQk9rOiRHFUaoTXWqgx/tFp5x+ELAedOjBa4841/F1mcP4nv8lIaYV82CsPuFad1fmVGZqbw8ARfhHaTHVWacq8ZWq/9GvNFPm21HUVm0ffTzP6HwEWRx4BKVUTf5U6VzYS1eP0iTPR0m/wtv7ReGcSYsBavj1bVXhcBPTgYYkImV8okNrW5PZrQkAQVHjP2ylFLmc2UHy+bb5B5w8P/42UDn0BGQ5exnQsVGjLvgS7ltAIFzwdC/xV8bjEI/Tfs9GIIujOYn2fFSUfpEgcFi7gUiIf0ZaLXMr4Ur7fF0+OhDkIv4dFOey1ey2fNQQ5DZyV6o3aXUs+LW6RUVhSSUS3JCg+M5xpgxwRzhaCvlE7SNHCt4ufeyxFDe/qn9VUBwjt6xUm9huGOODcP2BXXrx3fqgQSue+B3Wux4WqZb1QWen3Iw9sQYwMuUwyckjWIUo+9WRip10kmAsM4PMwNMT7gZC1zI9ab0HA1H3OtB4pPG8J2j2OgGzTtsrTJib7L+NYeFWYRrLO1bpYUcvleDlifh67HkN77cdnBcPEn0LSiSXFZVQwrExt0o1Xx91w2bSr9icwivKHlNIv6ilaQWSyNr5SesumVv8jV8Er1aZtdKnIDX2O0+K0UcnlxAHYt10q/LeQmFW+X4hXgC3Nxl6q6ULVOMaAvLNyE+1zGDDZscxnzGrGRmXXbnpRO0Dv7fwhsqFQr16qpVVlNKD8E0UeoNMuvMMkXKPGLYyRq/mUtymTA9jFN8ifKpeJOkn25WNbQLPqeqZdUxisZF5+AzpTyB0TjB8rPMY1hN3VFsli1+0zTmGSUEeks+k7QPwopUUoxwhaj0e4bEGEXw9GmIcptQDk00fLrvSY3/i3UL+hBz2G3vgKwT3YHnVRNfX/IydziiwUoFbWsxRiB63hFKuZlQ48TuxhxqYeWchyfaGwpTSAeXEoLphldSgMIh5cSnn98uWzsXGYbu1assl5TdYLmHkYUP2D2PzCRYfaGeRFEsNXy1ojgbKGjjHts/Ehe/wijgVeCbk7I+GeD3R1n2MV4L7qudRF34iFmkM5uOyOmmOZ2JuS32yiSMiYbcXdm5HlDmccUe305yVb98Yvgm1Ta/aGL9Mu4D35qNyT8DLulQHkIFH4z0UsEvZ7orCSGo2wHMfo0exQ06kDbQY0/0x6FnWPcCQ5svANhFDb2lNhBTnJQ7IN3Dxm4HEYeEcqBYy1eiwXyQv6rPKUiRLQRr8ViWTfFgfXOmkFm0Ap4CplA9I1KcpVdJtmpTUBcnEP9mWSxegF2Abc55a+sk0zufuWl+BVMrxhr4m4ZUmXLqhNMURq4+40qX1adZmpK8+xhGadpRSz5u5gFzTU12i5UtqnDhvnGacTcXhcmj0sEpe1wQZXBieudHLhaq1riWGq0gfGrjIOwRpgttBG3UGshJlADP+5tg2JPeB2g7t50C0yX3StOmmoady/JzUZyL6lfazz3kjwmUNxLGjLB00aKqwr75KonMg29hTekRJtZwoQ/9XkQ7mgvC61tZxX6hzsdnJbmsBGFLObCySEj3K2nCIFZyHybwlb6jfKULSULTpbh4YG+yeWongNz9Z0WWS6i8NSFPvJa2LSESQ3ptIkLla2Of/0MuLDdLEnZDl6UDnV29lCOapHQqmtVh7fSrlQsy0cR5/YC2QrkoPCIkF6dS7c2ypGO62ivGFqzvjrzzRtFEyYk3wkygycZNflekRk9FX+/VSHdhPhWNdqpMptgHzklZK/k6KG9AwpyKPl4gwj58ME6cFAPGbyDBfkwwT9AsAwNjIMC7XAwaiAocw+DB4JWcdLLcqvgswE3z1GthE3c1a8tH/rWPCmd/C3Cl+o+EzqKk5pyB3uaZMAU9+skzKY8Fo/P2nfFb4NfEvbYUkraftp7WJjZmDKN+4kWSUb7eUrh2Aq/y1cqi4R6P3zGFH/Q8XmwG6BySfxNrOT7fA1oRiKfJag8RBDsC/kc+m7CYfa0EmU0oL6KepHkRmbWU/uoXudiI6LEBKZD8dpT/0Za/UZifyPa/8aEzaxAIe41pei79Js6aP1eh0bJeoypBbc6ndSQpyIDI40Ne63J8BGP8nmM8L/Jx2xKfaK0UC80n6M+TNKlINtYthavoKRwfmy6XLyjjUA9kOixZOh9RGZzNloZFSmiwampNpkJP+xLObQzRiH5LvPFLqqGxI6m2mQm5PtbL0SfI99fc5n2a+zfEKc2qH5F/F3MMkKviIaundRk8JaZgrzUmQz7RT7equi7NGciMio0kaHHhhf5mBeiy53oZAb9HZxy1GNEL9koPbjD21kdVoPdne3yxMnBEKONg8vmB6MeZzrVR+u6ddpA6LsdCY9z3jqNYPDejjeGulUx+G9HG6PO0m0e+MzDgCFqWcm9gxGAqMCDlvRjAicz59wa8Bz+qPZBm5JK+L0aG2y/PWhSb8fNbQzcqe6yg9irPtYElcvigxCPZ4Vw8VneZ1TDnhd4bXonc6g91077JnFdBxlM/QV5nNfjTNrH3/9Dyo2wOT+p7NoH4X+vpSc2rrhfw9AmC933a4a4EweXQQxHDuNMAeXO91nhypzPbQD40MRlAO2pyTgD6mOT6iqhigFbfpct9eFJdYOw1J3OrFQFPtHks6MUmg4ceZvIZ8bwdaIJjLoSawl5uW/AICtO9vxlkDHgQy6PJbSnXCPN6CWCOZEiTpOMbAHQTwcTV78w8ToAnzB5jInOpMncpqlsn/CQxiSV7RduE5sCyMDtt6Kfg5vfgDoNCZUNm73elGbA7t37zXDm1OE34xb6dIzfEt/rMdzGIA7xXYZQn+KPMwJx8u0ygvroe6wRhQj1qFvJeoZeaiPKZkzlJCzVQNeNw5CJHS8cQQcjjTFKy1kWnyn9IjTVZ7CiIouXO1HGr9G5H05kQaHqebiP+5s0bkaHPtvls6crOZ0xoBAKlwl0MRTjwPFBFC4rmKIovCY5ohGu9eZJZMUtDqlBj5X5VGgjE0zyDFj3ebmOdoqQwchZaUOHK4Ch1I++U5wCPfhN8cPssCfFQ+HJXlYbNoj2jTWwkfz2TW5akkeq+GVSc5qq7CYUf0XLv5Pkhyd5Gu6QOXSPxAEN5LZtarPsmRltm9spcqOndi1Eir5T5Eb/sZVbWvSdIje6lka/EU/zDU1u/DwSxcUY+1oDpQlWd7nXncIMcn4m8OFtBCCjskuBdPtQPilBBHW0l0NW7mBO8zjRErjXdGM3BTnB5SbJVQw6rnODV4KgHL9B4DCXvAca+NZqCHDxT0S8lRYnLughBz8x/CGHEOgcc1rjBved1tDDg99F8MPj3kU4AO+YWcrj8RNhxIWyWYU3SgMGcpcKab5g+GDtRUMP2M6qG9huCx2Dnjw+ZEWlDE0XHGqKliKHBMH4TdgpcqPncrWWmTlLUoCz089fyS5LWQYjvP3W5tZ/lvoNuCh0iHyoXtsnI+q07XqjXa940TEzUgD2j63QIjNJJk8Y6n+vPuGXQC0SvKbg1wkBJqCWCl4T8KuFYRMcA89t+xAbfM/WrUO6LUWHNw4wHg2GNo6vf091+jLcNR7PvFFpEgG69pBRTf1Nrc9vVmRjlO83c7H5KjYEby4dMrP4ve0mEpuV2FC9vgQw+0lG3zcqyQzmbuWgobtf8Fyy5DINMfUP2YOdcwKNsHuocjtF/F0KZbVTnsAUG2GWpKC7UIOGNHX5zViXT3mttNpmceVAJf401Wte5U/E+5+YxjjY7vCQPYidYbAJt+VmiMeSaqc1nUEqw7veh2xS1ShQNjTg04YQs+oVX73npDZLV/qxMCJV4DTiULP+2G1TuAz70fyFCUwrmsltJDKutUI1HUUi418rOPYV9/EGvJfYlyXdP8CzkXSAyDORNCqLKQuJ1wLM2BuAjWnlXnbyTCMBBsGyjHhNIcwwctgIktQcXVP40nIcNuhJ5YCJvGtBpcLTE0BXmbuEdNeYDwOvxatdTKy0WMPS73fh7fuzlWAv+T4xOOaasgOb/IryCCO2qUkikZeuBMtNYEmtmTQ0mb5B/VN3BnCFwQtuDDSJ+2Fk8MXVLq3r0iolKOxIt0tZqfAg5rjLH11W/60PJLR73VpeXblIvsP63L44cvV6/B+//LZ3FYOCV/o4R4/wyJV23XhAi3UACWmtxIYKOfZ2cILPukdB2mMtEsxKiBHUXNLMWn1yQzl3hZlyd3dBbgRqHnPjO0ayzUoLeyL4Lwl4gtalQLkbB6dcckI5ky4F1Gq3qrw3fu1z9HNQeiU3d6kYdRMrcaFfyjwXK2L69U6U2ABHo/6zvlkKdi51FUhdTLA8yk4kRybl8ZXaqyae3MkecG/2ZB4DEE4MvwFuJwa9AWUpSBIHN3v5N+A0DuOxcUlQffAMaVBHm4TOC+oxiicz6FizcHkm3SYxZJocaw543eC2BLduGAuNSTbn5vakm6NHR+QscpNTZy0aawgy9YzbGI7kM2MNAmUHcZtBlx9kLDw+Q4jbksEcISRmdBalxfO0qTL2lTH9DFhHOQQo/UYqmz2LJLX5qGi4jlQmGoqhteuqLw+6lqkUob4kL/ZejRHZ2ASVxatRRNTG5qWsBYnB2w35D/uWWuECB20Se8Up91XLVKwCx2w3z1GthB3r+rVFdunQQw68cTgadE331Y/gHoHRuBvxlioRQ075PNCVItlB32hTqqyBoXtAjxmVGmgHOBq5dPyQ8O6k2GCNnarmahvqmvEAF3JRJTdZI3mG7B88FtAlqh7Cd80vi7JxAqyoSlLOKvYkDNosmjjFkVq/QQTUYF0tA6A35ehEgbrZSXHBQkaGHiZ4TDgAiHhiug/qf12aDrh45fYMuARq0RZK/SUQHSpmKmuRomexA6D5j8DNcx+xlCCC6wyWizorMiBGvV323RPDOHAQKWE6FeO9gLYN3Te6MGsZHkiZxcVVLjxnQ4kJFZajxsmKyE4zDjZ8x+XiBG63xiFutHxO1DY/JWsCtSJ7UwBffHZR4+47e4F7g2mutjqS1h0CytnrECAdVmEOOh/VEcY956or3yCrpTDBmfC81A25/5+9f+uO28iyReH/UnrFyQ9xj9hvtETbPCWRKopy7eoaPThoMSXza4pUk5Rd3ufPnzHnCiAzA4EUkYlU9xinXyw4wQgsBOKyLnOudUCh6QOcvD2MiNx3dkCBP1/96+bz188zSbzq7ZAi39zNKXLf2wFFfrp/mpouflTgrq8DivvH1c2MK2/V27wiD7fhr7dPRw8PV3/+cnX7dfput9F63sQ2n5d3j9PhRFWZXmz0tsOIbg7SmDsIN2cRt+9pRlGrX54F8XaKLQzbz+oGYqE+WGR3U/GqI4K9kCJ9qy53G9qNARsT/v56Yux0VGbp6XCi7hDEGZN1rijO84Xfxaioy76zYfFcUfeIjIzJPHdo5Pkvs6NDaexF9nErPV/oXQMOY1LPGnF4/mvsFHIYe4f5Yg5bX6B68ry8v/36eaf3kJZznjb8Zz9JXuQ+5hnIPDjjnooPN/hwP9w87bR5r8vdd/ardLbbCtwuMFI/7T3AXSeHEPDpzy97y5f7+B4TYHdFc13gPZXMgYhblvm7D78tP0+sRT5s/99nya/JM1z40wcxD89BJue6qIMpOoOo1a9+fHe9h1Gxaj0rXunm7up2H5OiEOsFO9zboFgbqrl19IHAs2ro3xZ8V/28lHsv7fzbYu6tm5fyHkYz//aL7KWXly+xv1b+bYH308lLiQ+gkT/jFeBYnJ53ZuQN0Nkg68y8Au9hQJTizm0+VIUvz5f7r/CL7sQ03Gw759nydPXwaTl1Eg+ledH3M/nrbw7LiJj/535qrraakLmX2UQsvvDOtcXXGs6c4vj2Znm9SyrgUqIXua+d0/6uj814nt/lp8nkjYGka90cQMjr5dPyw9Py+mgy7WcgaNfV1W600GcI+/Hh/vOPjxN3zIGc6OXj4y7MsGeImLHdu2m3A1Fzb3uots8QeS3J/durqXrXQOS13r5cFUrXbCKT8rEbE2MgsPS1Oyb/2eK+I5QbGQpnkViQ4b9KdwcQmkrc6WTjfCAt+9nRNH+OmPf77whP93PuB+On6Pny8cv93ePy5f3d0/JfE7WU8X7++52xNQHnPHLLgTzk4VZ9l/nOume+yr5HX/UtZjkJn/kCcx2M1ReZ9Zx85gvtvz9WX2Wm7fK5L7HX7ll/gf0303Hhq3vrTqjFjaYHSaS8Qy7ioVD7pyLeHKNtCUsmeqsqwvbdHEzIybiuESl3Q3Q9T0yB3c4xnGs9HUTU6+XH5cPD8nq626wibdfZjm6zZwm8/PgRebB+Xx7Nu8r6fr/Pcru5+4S6Q3uLvernIGKi5tPN3ad5hjh3dtBxzc+YZTrnvg45m+ll5iyeYXzZ2ce+swMLvFuV9K1i71Eg/fnCY2q8/frr7c3jbzNs0H2Y4Mtal4cV/t3T1ac5JX/s+juc2BcPV3ePV0xf+Pjy/vPnm6c5Dkd2/bTW9Ye1rud6mYG+Cc/Lyd3H+x19T0XzOfXOD1dfpDjVzfRVWRPrRdHh9CEtx2pUrfv6+LR8mBosHZNaetspWvp8ke8/s3Dgzf0d0p1+mEfyVacfcqff4wVeL39fTiR3fPsFbnOnB3uB5Zf7D5Nd1VWpu54OJuoOqJERUeeCjTxb9Om4kRHJdwSOPFtQtJxpA8HfHXb32APmMiLz3DiXZ7/Kw/1UOOnIG+SODjbmEjP5+9Xt7enV3f0juLFT83CMSC49/3F1e3u30fPBXmVXrM6I/LOCdZ79EjuBX0beYD70y7PFB/Jipv0GXc2+35R665+ff72/3YFXuNZwTl31ZurQFWK82G3A1kZhbG1ND8uVouUu5hGu+I45Gzyd5K+WT1c3UxPPVjqY1waZnFlkTKKd04vUxmib13t6vYJxkW+5/+9UrWCC2NO1slGJd9TLJgj7sHx6+HN6+oZRidf7O6DYcqqfT1ZvRuWWDndUcyYL/m+T8YXfEHxHqOEUwXesHjIu+D7FQyYLvpND6Buy7w5KmiB+TtD99rfJyYRHpc9dfvltt4zCU4R/+PN0+a+n3TIFjcv/8Ofd8l9Pe2QLmvAKX6cmKh8V++vDLi6X7aKWCsjXm+sd1Mi+2ZzKxm83nyZaz5tivMgdTB6wfgzGsujc/7GXXNJ+DrGKr9fnbZ9evW+j6cxpRq8e/ryYzKwbCvRCutqRWrc5NmPCfv34cfmwvD76PN38rgmcu7v6vGN61GcJ3ZWU2FvctY4OIujD8ur6T6Bk958K7OoxdzWXsBu57K+ur5lY7fXN49PybjmRIVER+er6eokOb1cdHkTwHSpQVqTdtfrks0T8MhnlU5utu0F8niXgw/Lz/e/Leb+/9PldpsD0opkVeXcsmPlsAf9+8/Tby6vb21+vPvzHLML+cfP024dVhwcR/Gn58Pnmbo4dbL2n2UQt1AF4Rh92Sf+x3nJOZeDy8j+7zk/uvnydesKWUr1gf3/w55vc3+SxXB+kURjd480nfCuWUGLKzn0lX3XZZwH9v9SBxJ/uTxrKu6Mj6Tni7ZFkZSjnvklWniPwDklWhoLummTlOQJ+vZua2n0oX+5jJvHWdybB4vxA3XiClOvN9tyTNhU9pPCbvEkOpHnBfj50/Uwat40RGRNzyhetSDf5Yz5PqNNJtnBNrrvp1vBzRPv1/v52eXU3w4fNPR3u0374+oBO3t4/3kwsoDYUNvf1ZdXX7OJeLz/cfL66nWFkc0+HG9kNUS+mxf6+Ie4uYcDniPzx9v5qesq2obDs53Aje3M3h5A3dwcUEZXj9vvgXQ+zi/b49HBz92mGAZSODjeGj4xa7ydi18Xswj1NDDsOZXvaJdD4LNE6pX6Gb9z3dbjP/HQv90+X+53mT/fi8rxbHuRM78T85WYmOX+/mU/QgYZLWPyX+4fpe1Dfck49d6pfsCbKbm7BcjjGBBQ23N4i9t0cQshPy6dXy49XSP3dMdQmspGqQn9aPl1Ltz1BbRdi0jNfYqJ/sCrxLu7BbeKloJzuJTz+19PDVZl6CpGfUSHXW8xK9/20XIsETRPhRdd40ihtvPtoCPLTrjJJ09kl+s8/vuwqkTSdQ6JyGr2+//RpzcmwVS7527133E0B/vbHlx9u7q7fLZ+enivHRpPDiLMRjX2OMGgwvyjZLJsizKrJ/OK8EvNu0zH9LYHWGx1ApPuvv94uWWRiolhFw/lFOyYz+eWKEvRs2QYtDyVcCdl6nmDzUPdGhYLu2oW9kP/iYc28ep6AlR4OIOzkA7hoNOcZ/PX6mWdLTYYX0nqqI/s5Z94fXRxuD+n+WP762PUxk4yVz/nT8v63q8ffpm0i643mn2Enktvg7cM9//3repDqW5JV2h5CQKmUK/bEm3Xg6rflK5seQrwnbydI9OTtAYT48rudNqn6FvML8/r+7pN2fpo8640OJtLf7x+un7+Nrjc6jEg7aBSbzeYX63T56f7pBgHx3TWLLX0cQuDHp+V1PywThNxodyjBTr9+/nX5sItoay0PINz99fLs4ctvV3evHq5u7gixmrT1j3Uwv6isVY0pdLt8mjILi3bzC7ZZ+XXS6A2bHkK8vkIRVNWfr+6ubycYv/XmhxLz/P6PdX16opRF60MJuYnIf55oc8DxKwKtZfF7Wea//pZglbYHFbBIcjpBPGl5KOGmeKWKRgcQ6eMPVx/+g8fk14fl1CGrND6EiK++PkiqmimirRrNL9LFZhmCbwkjf34AMbrQ4Pt1xNc3pVlvNb9Q64SjSYdT2fBgol3UKHHPlG697QEE/HpzPU0v71vML8w6lm/ShywbHkq08zXw2fNkOr//41DCFJXXnifPLOXWSpF22BXm3BLM2uD8/e3ly7PX79+cXl784+1xL8vvVw83gF6MD9BmwzmdiT+cnB6d/2M/UTIVbbLLrujq8pJktjFBz85eHx+d7iupoBcPLOo/Lvb8uC92KnQwSciXPx+d7ynkh9+uppN2Jgn56mjvkbzehVQyTcjjlydvjl4rHfcVVaJn0tHhBdbOzyOwdHR4gdccvHvJy34OKe7Z+x9e7z1vGbP8HoJeHp2fH+17BIi4l1fZw3ZAoX98fXZ0sae0hAMfVsyfjs9+Pnr3856CfpKg02FFPTnddzx3SRsxTcS3v+y7+G++/H7gdf/67PSnPYW8vd+BxjtZyFlWPET9HusdAu9/VN1KFOmwor77+ex836X0+JtgZA8p5j/e/HD2el85dwKyTxP04uTN8buLozdv95T1aY2n+j3EvTw9Oj17N5fQl8y0eVjR378/ebWnvF+/7pCmcJKQvxydz2C1/H71cBDDZWDov3l7fvzu3cnZ6eXLs1fHL6eKXTSf0+g/P/r7HNK8eLianrqn2tv27/5v7y4mT86qvP/n8WnHKfpNgYuvny2WyzdH//vy3cujqdbAoPmcX3/DzNxbqD2t1mGn2+fChsk5m/A7agY7Cj/Vjt0u+27W7DNEH0zpH4/ev764PP4JS+Hyh/c//nh8fvn27Oz15buTf5s8wbd2Nq/PtXjYyenJxcnR68uX58evTiaqa1u7OqjU747Pfzk+vzw5/fHsEorG2fuLyzcTdYxndTnzW7w/P6KP4eVfL/9+/MO7s5d/Pb64fHt+dnH2cqoOur2veeXOQ/Ty6O3RDyevTy4mWkuD5nNu4GvH0RxSrVey2GUrGfa6fRf82/vj839c/vj66KeJ03dE/P8EwuhyWC3iQOL/29npxM1uRO6dksw+T+D6ZH5z/O7d0U+7CZ/bzjqNj17+fHx5fvzueOImXBHpxYerD78tL3eiqFe6/Ebo5Oj05fHEvasu892HHerGTBZ3h3OuKu7D8nqHLDhTxT3+38cvL1/tusg2JF7+a/nh8nq/ZfY8oWVPOz4/P5tontbElg1tyULb30fw8+O/vT9+N8McEdEflmx1cOHPj99Bnfnh6OLlREd7TfYHIgUvfwXW8nuJfnw60bLdIvguGQqnir2mMu4vt+Rav7y5+3h/CMHrh+Dbo4vd5goazqxjnr48e3Vy+tPlT2fnJ69fH00Uq2h9INnen3bq5vHUqVrrYl4poUTCqjk+h4/mzdRTbtD8INK9vji6FJf75auTlxcnZ9MRN9t6OoTMa4bW27PXE1WdahcHkHKnVbPe8gAyTXdV9s3mlebn46NXx+c7eGbWGs4r0cnprhvwessDyXR+Jhd/PZl6IFe7mNNMOnr519Ozv78+fvXT1A14XLQXVx/+4+7+j9vl9S7VcEe7/gbaZLUlzP9C14C3A4DyX/Bib9//8Prk3c8zvs3uBZaf/wojS2HdKbir92t7X3MujrU5NbuI63Nqn+8w8ohvf5DsWz47PT1+eXH55uzVxK281sOsO9O7f5xODGuOivTi6vHPu+lFgMe63L5gz378cS6x7z9+/E5CzznYhx3rYiK/OfrpZKLkbDLvUY9AF2FPl69O3hyfMpb7+vj0p6nKyHg/B5d3oru81sP8MtL5cnl+9vd3l+/fvj0+v/zh7P1UHWq8n/nlfXn8+vW7Sz5gutuo0sEBJBSUyenRm+OdZ+iwj0PJKUNxcTQZ8VztYn4pT14dn16c/HiC7/WPi+Md1lDZw/wyctbvMYyb7eeXb+Bz2MGuHO9nfnk5DPstoEEXB5JSvtuP50dvdhjPsof5ZYRjAliR3n+345ev9zOvvGfnb38+Or18dX50cnp5/Mvx6cUO5vxIJ7PaLCfvXp79cnw+1V7cJtqL65vHD/e/o7zaLnrdWNffMOjx5/O+BZKYfNdXWHdTHp+/O3l3gZY/Hp28fn8+cZ5vf7OVLXn5BRXcUfPq6fLj1c3t14ed4pP7v/D706Nfjk5eTz9znv2mX++ufr+6ud2pgPHOr4iPN+usxEf6npPyNYBNc77ALVLqfccXeHt+8gan+2Em2JeHm89XD3/+10yu8+OL83+cTOX5bH0f1vjepXzfzi/x7uXR6eXsy+Txw9Xd5fdeK+8ujs4v5n2Np6uHpwO/Ql1zkS9y+Q7mxulUgFG9j3k1rBVyT2BbO8czt3Q0r8Tnx52raleFsNbDrE7U16+BAnl7dnJ68e7y/en58dHLn6fvmKNivri6vb3sans/Xn69e1heffht102z+pjtK/To/cXPO202W17p69Nve+w0O7xEbjDfK+TEc9/tBWh0zPwOtDm+82vMqK9vebHZlfU9X3VnRep577inJrXDy3U73uXRxcXxm7cXM28Q3X53efX0tPz85en7bhb5DIaNP9cLifyXsPC/00vsrcOPv8xMCvwOL9U3mW+qPSy/wx440GqgM705evfXnTWwahfz6l7vjk+BJCIo+vLl0cXxT2dTpax2MS8HAVD+yTvPuFwZ1L/jZlPv95s5ko4uX5+9mxjZ2PIK11dPV5e394870Wl2eoVVQOCno4lk/23vcfMBKYex1Xy62on7v8vLnJxeHJ+fHr3ehQ2w5WVYmOru6nZ3XsAuL/P65M3JxeXx/355fPxqxkVye/P55uly+a8Py+X191spp2cXl38/P9khyLblVe7uny5Rc33XU2yXF3l7dP7ueOb59eXq4XH5fSdXx9y8/OXk7PXRxWQ647a3ebh/uv9wf3v5+8397dUutX93fal3L38+fnN0+ebk3Zvp+IItb/TI3JiXn28eP+9KUNnpdY5fvj8/udiJ27TtbZYfvj7cPO3BctrlZd6fAnk63yz7egew6XebWti75l722LoOv+y3aYZvz16fvNxHL5QOZvXJ/XB0CgbiPgfemlQvrn69ugMNcf+TLvf67RjFyZ6H3Lr4CFDczHK+TRP/8uzi56km9Ldf4vL+6bfdrOjpr3JxfP7m5PRooit/9B2elg+fb+6udqIMP0v4wTolcvn8bPpU6hvOuS6zT2I/WTr3w26DuOrree6Tl1AC3k+2aeoiX37A0f91R1PmuaKfH799ffJyIq9qIPLD8svtzYerw4r67uLo9NXR68lk8YG0j09Xd9dXtztSxbcKXK6pHy9/OHr5V8Kg3p8f73b8VfuYc6XtomSMC/Vid/2i3uk39KSjqUTQbbL/cbVb0oPnij6cH/T870C72Wg6qz709u1kovpQmBdXX77syFHf7Gz7139z/Ga6n3Eo7Ofl5/sdD4kJwr49Pj85ezWVHlER98vy4eb++mYnVsc3BC4n6MXRxfupzka2+e/guF0JsqenVjo6oF9zTdIZHJnPEndXMt2GrPuR5p4l6F4u1jVZZ/CpPkfcvZyoa+LO4DV9jrh7uEnXhN3bL/ocUc/2mKj3h5ufu/tn1+Tb1yH7HEH3c1auCTuHd/JZAu/jjlyXd3//4/PE3TFdzqase6XJeZagu7sW1wTd15c4Imihf1wcnf80NWOctJlVJT6dqGKuifDi6m4nxTJ38SzHw+7C7eEeeZaAO7kX1gXcw7MwJmAxxd6//en86FVeDztgRoftZ5167y9+Brz35Q4hsxHJiKhc3j3dfNg5Vlbp+VtZFLtUCDueP2Pv8uHqS650udd5NPmFfr64AK7m/94BXjT2Kr89PX25fFj+/3eGF01+ibO3R397P1HtG5P+/svVf37dSfmbLDZcbzOP/cP97fL7jn3OwTyP+E9SmfP7CH5+dPru7eTaJ6OiP1zdPX7ZsQzKZOF/AYz47HTmTeh3wIbv7w6+A42cXF0677c/H73bcTVvdPHf7fwaCjfjEbbZ+bOIAbO9RQaTHlD8Ysbk6T/tBXKjefGi5IhLVohVuY3Xx79MZUKN93MIeU9O55G31s+e8vrVNL26vv7bH19eiW/u6MN//H356zuQQp/eZqBUL/LHr3d0No6K/M2u5pP615tPN3dPF/cXf9w/vrz//OV2+Xl59/TDn0/Lx+fLu6WTOSXNFXCfLRT+fsbn30/5hPjrGZ8ttWqf++w/n/atFL727FzJ6ZnPxl/P+Oz7uw9XU2fjWqNZJcGh8bc/vpzeXy9fyl9OEWnQ+lCyHX9CoYldZZPWh5Lt3fLuejllNlVaH0q299df9hOv72BGCR+WV0/LH75+/DhJrLVWc8uCc+nq6er1/eOjvOxx9kVOkq3eywFk3WmxDhsfSLLJ823Y+ECS7bIYqu0PIF+nBP3S4c73m4jbujuA9PsJe0DZLtZcApPE6hvOJ1GuKP9MMfDXMz57WLvv2xL0bWaXY70M33Pl0M7PLsdaRb3niuHtrFLcX2MFvLy/A1P8+O7D/bVkdHm+UNUeDiCjKFFvlo+PV5+mzONq+wPI9+MDfpguF9sdQJ6TO77w+fLxy/3d4y6SFT0cTsZ3jBSfSKB4RylXfRxQTtaOftWjml4tb5+u9hC51t0BpP/l6uFmiq5WNJxbovdPH6edArnNvHJI6cC//fHl3x6frndYu8P2c8r38err7dOmavLz1d317RTdcVsvc8r6ePPp7uppeX2xVq382SIOGs8o2f1XwXA9Vxj+/dzPP3p4uJrgYFtrNJ8ky7u8oI8+fFh+2eGYH+ngABL+cHN3PcHPstnuAPK87GodThVIGh5Coq6c4WSJ2PAAEq186m/vb28n7qXbejmArLtKdyh5frp/uLm9naBElC0PIFNWT17ef/5887TrgA07OZyke8p4YOlKNW9PaavdHUD6v6Ek5nlfEXOqtOvNDyDdVJ22aDi3RNN02lWb+eT4eIucYXc4o6dpHEXDOSW6v3oyeookbDCzBFN8LLnBfBJ8Wt7/dvX42/MlyA3mk+DmbtI34J/P+vQp488/n/HpX36f8vAvv8/57Me5gAvf6mk+mW/vpxgF+Ot5nz3JLZsbzCvBxL2zbzKfFKTPbMTJXt7ffbyZ8F3GephPxv/848srcS6seRbe3t/efJgwdls6mVXSrCe/u/k/E5SuzXazyrP2ti+vnpaf7qfgb+rtZ5VPFKTJw7VqNp80D8ur6x10vY1mB5Lm9OvnX6c44yqN55Ts6eHPvOLPHr78dnX37vZ+0oDV2s8n3+NvkyKg/PMZn06DacLj+ffzPf9pul/0aX5v6Nenj/H18u7T0wRldNVmRjm+3lxPkODrzfV8z/796mEa8C43mE8CUg07d9LPy6tJYJBK4/klm7rZbrbbTZ5/b/5yc3e9/Ndf/tf/85dMQPjL//qLXphF+kvzl483y9vrx7/8r3+KqM1fPtx//izgo+v7D195+e/5z35Zfni6f8Afy1///9q/NP9sG5sWvk2NanRY2KD//d+bf3a98C90YxfJ68Y0ZhF0bGzjFzH4xjV6oU1qfGMXJjShMQvdxCYsgtNNavzCtomddYKwN/7Cp6u/NP9UbePtolVu46mq+7u+pdpoqdFSNUYv2ug3WupBS73R0qClbnxaxGQ3WppBS7PR0qKlaVxYeGc2WtpBS7vR0qGlrT3TcXTVIqjQuEYtWmcb3+hF62KjMLzOukbhl2R8o0KjF8bZRsXGLGyrGpXyhW7RKjRaoTebGq0bvfAqNto0Cl+10bb7WzwpaNNofjhnGh0at4jGNjrimbHRKT/StLmRQcc2pcZAXhdTYwyeEE2DdgvrbGNcYxet9w0aLmyIjaHEyjYGHcfWNSaheTKb4+U2xsuPfl0/GGm/0TL8pfmnbRsbFjZuNAyDhmGjYURD1di4MGGjYRw0jBsNExpW51MatEybsx+LwZpaU9UO53+xdLAebHVOqcri2Vw9CkvCumpj3DKucZyK1jdq4UNqLCaIMY2NjVukEBuLiefwc8up4xunciPHCRJc40z+Y/y4MMUnV5vrUmGxubpMw5WpNpemwnpzvtp4uDjV5upUmHwuVBu7YePNqaow/1ysNh5OVrU5WxXmoEvVxsMJqzZnrMI89G218XDSqs1ZqzAVvao2Hs5btTlxNaair855PZy4enPiakxFX531ejhxdbHtY8746qznLde0i4T9ERcxcsdUC6c1tq9WLgy32YTNSi+0Ddij2kVSBltTu3DONRZ/HFWS+d+mgOmuFkp7mdy45R22uJga75t2EaJrPPtJsfHY61TAO3Jrj01ocSuEJlAM55vAflJsAuVpbROwi7bKNkEOgib43F/AS7TRNiHiUakJXb+R/VrVRMVN2TdR4wGhiaZpF9apJlpIHm0TOSY6NJECe99E9GuaGPNgxZT/IuEwUSk1SWW5k84PSiZ3lyxlCU1y3S++uwhdPzG/UoLAGm3bNguq2q5v1er8oqqF1D7gCt3H1jaqdfntVYsHaJx6bejvxvxQ1abuSmFUHNopDrfClc6fVCnTPVfZvgXGxhn85mWIFWeO3OSoK90ohQEKEE+33V2t8sgoreW7KW26Z+n+CRpPsBq/4Qkef8aXwGtrvoQOjcIfyMsaPKFFnzx52YnhS0AjMEa+YbFaNrdUTV3H1JfLcE/Vm3uqFn2nuiPr4aaqNzdVTZ3HVLdkPdxV9eauqqkBmOqerIfbqt7cVnVg6+qmrIf7qt7cV4HB/acy1V2Z9yqn4/BU/OZh2CjoKQsTcaUav0jaFnJtbtk6UYusb7tpTrlMPtGVrZ3bevMwMC3Fqk4TMzwNzOZpYGgC2Oo0McPjwGweB4ZmgA01C8IMDQFTWAJcHjY2wWED3mxtqJibhbdBxjM41SiOIxRc5fDxvIGWjiH1+BsHO8liZJ3JFpJytgkLjX0Aus1Cm2LJms1FZ+yo6muGa85srjnDNed8Y9uFNptmnBmuObO55gzXnAuNcwtn0mbr4Zozm2vOcM252Fi7iIUJaYZrzmyuOcM151L1UwyVGbO5MgxXhm8baxZtKEZtqM2YzQlsOYG9apxZhLQ5iexwAtvNCWw5gb2uth5OYLs5gS0nsDeNswuvN8fcDiew3ZzAlhPY22rr4f5uC3OWU8272vfmvQBz3yueomZhbaM87EWoTMrDHlAJv2GPidY0ysPiV9BEAhZHDMXGYTdnq+VsDar6/OFstZuz1XK2Bt1Yt0jtpq1nh7PVbs5Wy9ka6sY8bUhPu9VBYTMLDZVS4eU9rOlgG7vAyKngaPmmRgXcjRFXAbsA9oPQW+nYi3G3EGpzEVgugthWhYqdUFArAiz5yEdQiQ35+dR0+HxqTXw+Dhd8FLtw3jQqYlOjuhKxzWsomxHvE7G/RSi10Zdybi43y+UWq3s27/X7ZYQoOqBjzBcbGxV5JGHEYmrcIthGpbbxC698oxK2Ugs1L2kIB50rGdlAC5E217BrR7dNN1zCbnMJO6zJlBoLVX9z2N1wBbvNFey4gpNtnFp4W7QermC3uYIdV3ByjdeLtt10PLjhCnabK9hxBafqh3DD08IVTimuv1TVsdxw/bnN9ee4/lJVx3LD9ec215/j+ktVHcsNTwu3uVAc5qNuq6avG54WbnP6usTWVdvXDU8LtznTPP2hbVUL88Op5jenmldsXbV+/XCu+c255jVbV/V5P5xrfnOueao0bVVR88O55jfnGmAq/9Rtda754Vzzm3PN08/ZVueaH841X7gDPVtX55qveAQ355oPbF2daz5021U0sltZb7k1+bwvJWyp3Jc8NkjuS9bGRqu2CQvnGq1w0ylVCLE5ZX0cd2kOZ6zfnLGeG24bKm5NP5ywfnPCBk7Yusc7DCds2JywgRNWVSdsGE7YsDlhAyds3fMdhhM2bE7YYMa1+zCcsGFzwgZOWFWd7mE4YcPmhA2csKo63cNwwobNCRs4YVV1uofhhA2FD5sTVlWne6j4sTdnWuDmqKrTPQynWticaoGbo65urWE418LmXIuca7q6tcbhXIubcy1yrunqTI3DuRY351rkXNPVmRqHcy1uzrXIzVFXZ2oczrW4Odci55quzrU4nGtxc65FzjVdnWtxONfi5lyLnGu6OtficK7FzbkWOdd0rK0xuccYlGdwCgokAjutYzhILzDcWicGkWyjDW1ilRptoDUjWmXQ3iIuxWhRak2jGS6CyqQZL5KmUF/bFtGq0HcS+7tQFVtrGm3bLI9GsEb+zur+roG+6Yo3LgI94ztxrMR6NpdH5PKwVYsrDpdH3Fweicuj7irhPQMHgjEerl+38K34DTGAMav6xisOpaF/VYYyJsPBojat8a3kIkCtRiTQxsYvykhs2lx8iYvPVrcN3sPT22wNyjPhDdGLiEDj8OkMC5mQGo3JQpe3drA9AmSm00lH08CygtGOv2PwMLsOVmJurvLEVY6O0kI7tSmmzmIaFyVc6T1d+PDuR3jE1cJaxdmpFwhIctZFxDwtvK1Jab6BWWgPgWBuuQTBEcX0utGO4VHEUhFAWCjGUBEhDdE3Gt9mEeD09jo38KZr4PGpAv7LyEHbpkYjUrowDld4QuIVHuEDOsbwWvx/wKwPrW40zVH5TTf4f64qZRtNm9D6WAzf5jaXuM0FBw+RtcXwmTx8cMf17kGMjFlYjgKeHbCCg2/8wlg8H3YdfOMaXkYaljqk7reIDSHY0OgID6dLhZKUNrfRxG001oOptHUgilINBgs4BO4uETJAXFjaXkzkmKcpnKCyhPjRTUtXneIuk6889gyYwJyOMLwbTYNY8Q0wKTtZVnJvbuDJjW4pabh/p839O3H/hjXtF05vane8J95cpfM3YRyCM0hFRgQwwpAe+2aLCRkj/TYYdWzNiGzp1HZ3EycpvmzS3BYaxGW4jgs5N0+KFMZfcqiUpM1NN8Vxz2Qa7rqpCLGncc9kqkTZyzB7O+6alJub7dd+yx2ocf+i3Cw7KMLtrR53McrNsoMiNt6acS+j3Cw7KOLjrR13NMrNsoMiRt66cV+j3Cw7KOLkrR93N8rNuf2N0uu6CGHc4yg3yw6KiHsbx52OcrPsoIi6t2nc7yg3v4vjUR61JhfBJSOuR7n5X+V7VAPcCxWVNIJ8UWtnWGCshqeEWUDXlInVYj/kXp+ibjScb4i9NTpBd3E4ZVPIMTGdcKp5nOIJp5qKuhSvWOpqHJmmVGWllygYAltM21bnaA0IUyJhCG4xrcIcdYWGpGpgmBINQ4CLqXu45KbDsWuCa/hBIzUZ+kWCbkxr8ko1cFRxfZqWp6gq12cJpSE6xtR9TPkmPqDR+cAHaA7Ps9Sc5CnQ10zLlWDwG93NgK+1qbtS2a9TSlPsFoTbGFXfLQS5o4nz0Iz420VIOscAocRhtsuViOhszIK1WNriNWoBTNESdzXwskCrKuUqNiEieUzdqaJqyJ8S+kM0j6l7RlQN/VPAfxQRPabuHJGb/Dwem7SC+tjGbldHcBmLzyz4//xkJoXGqBwgMApfzPnGqJR/0a1EBQqpClyRIlTI1J0PclMMlgQEIuMRMENW+q3MFat0Y7TOUXLDD8uPqC3PIqxs7Bh4EaN93mowJWvfroAvKQI0TN3czjcJ7YFh7DM6hGNpgE+DIgjZxJIB3kXRysF/iek0Vg5DvYAWrQgkwoeWlwRGiQfKIsBgoI3ivKjueuEtFi/aJlwp2nYt4J40Q5JpjCHG1AP5KaYA0FTcXLF30yqV3yz3h9AYYqykLUwdBwgqIaHOxMYQE2rRA5bqwiTVGErK/qzYmbYc0mLDJGoFtohTUImLIa1smAXMRRG4YkZwmHKT65xvhgsfM8Ii5o8DvTpAWijm/DhBGWrpmn4JLHtNiAAGxCxaQGb7cbOYWPiXqFyMmvX5F5xgLvjGwOG8CFCQiEDwgNryU2ERiV2GQaaBHdGpw8dw2B8ddQYA3xxtY1sesAVwRxGKY0bAlLzJaZVch45TMgrJhLWX53zEoc9J6GAUOwLcouWy14vA/ZkbImRvYycxNwq+NtYiPfJYafJMLASzSAnvE7tpRmOcLaCkY+hoikMrMp4DjT5p6ZW7fgE8UoQSGUAMayu0gugssEeKaCLjXb2DipJZwI+UYIz8yPjTu0tvi87TEJELIlUAX9NUrHS35CNG0IccxzA+SszCePrs2sF2VZwUAisKbeNbuKUKUSonRYENUkT7mKCqg2H6kwIH+ZrAa0d6f5AHDddjMFRnTWOoCvNvArZjpwrHhyqARorQIRPqw8qbvSgC80GgDTpMpz/02gX9jY4rjy62BJh7oIajGxNkjEtpioOAUCS4x6rS6F7hho1PlL6sb2qjRNMj+oRZbqJqwiKlclUXWCdFnJGp+1bkJh/Ywr3ABwIHC3BaXJjGRKhyCCKZCJAZ0f/RN2HhB3OoADQpYpRMrMOrebN/sIkYO9g3JqbuKnFawFOW4EOK2BQTCSlp8OhiJyPAyaT6zs6bmjYH3jevJIjA2UQR8hVF4NZEEeAuFxEc1IHEmahVKUyxsRAvha9VXQpejhmz8LBxaVlFeMPpFIW1C5vEU1QcyG4BLUTmA02tyHk6XATF5kTYFb5cVYiwPiKUxtG8c+R5qCyNxyFOGbiXc0LwqhuIhmdDbUiKnY4wLlPHL6gK7EsVuC9FJJepQxjkphx56+bCygzAMo5YxkAxyDIWIw8RjRYLDGoivYqlHMU2R0yYHTGZbL/NwZ9KJwdcQWuO1d4YhQ6g6SHHDg1bGR4zkw1Uy80IwEwrBpWBnAyc6PLDFyg1RdyZrQfg5aZhHCfisGXgJVhHbQPOFjw70sZvoHYK8NGqlka8aeCSFQSP5aDKb6YGd1QFAE4R0mZHrBkrMT16e5O49KGwUkf2vtM7Wg+EvBFHETHiiUhu/rkVd6kiwU20X287xzl6hdmvF5Fzg54DBg/6Z2rRcVLWRwNsN3Cz4G6i4pHbijYtB5NeYDBxJugFVlJCcAHwAcwvieZYceF61VjlaReBdcAgAL60EhoW/k6Qu66xuu1aaNX9ndZytxzkYvMn8s/WY6Nyk6YsfCRUJQDUooDw5ctEBQ5WvCGYIhaRUvniOsNaG8tjI2UU05owJVVnHOKqbMU/UcAGlXVbHBwV4KAqkIOKWEBbj5jKTer5jCLhe8HZZIXbQMcDnF4xq/cIV8Piglsp0IelyZTMQc4uYkn6HTVRHDC0JxcW8SV641ssMM29HGPIhWjhGGNAtcVaY8gKfihLj39Mg3VV7PR23F2vbEULLbCIipi/0VGu7M0FSFAJEhCUsQFoRdmK6lgg+pQTdlx9Y6iA+lSB6lME6o2MQAXXpwpgnyJUb2wEKtA+VWD7FNF6Fqj8isu8gu5TBbxPEbBnTf205k1SY2D3CDHUyPRsgxVLDN6QvA+qvA3CSpKIGKL4ittbajt7wWudHQOWcT6SlDCVhRHE+Yogauo2SyXWraEDi1aqkoMKG5TsDnqRQKDq15SlsNxFDJ3E+Cmxe8vF4uFgtyrfoqE8UGwKLKNy4yE4VQEzqgLNqJzf9rErZl8BaFSEKI5M9wqiURWQRkWQoh3xQgjgkbQlItMW8MKTPYQDiIxfuF75Fy28DLiAFpH4S+axwQcv/gpxJrULD3Ctyewv7GkLuMOFNYVTX2UenSL1SS0QZBYmE8LASvyfWoz8duERhIg6f1xNop1SglIQ6rBMMqiRCK4rTBrE1uG4Eg0XtBVHX7sikcK0Qi5TnGWKAQV44jDzqISqBfzF0JuE0mZI1HNeNCOQqiJVEenYihtByYaKM9xyOqqF5xyUgbV484XD4db7ZKzACHAzZLUCKEAlP6X8Cta10heW1gJKOdkg9PNY1/Gwrfjg0KujKwVxUddLxgGRu7GT26XuyuMJpU+sQLgqJ5EkVQ3n8Gavj64iSdbrHK239JRAKaPvhY4u6112WFtG5RxeyXdxEiASoB6axvokv5UiFtu74Gh9db1UcLSqANIqQmNtqMdJKlBaVWBplYBp61AeuUlOIELrwrVrOPFjknUWYedgCQYj+qjFFyMrMBlZbwBwWK5ALDssXp+XHXQPfGWb6Z+Ye0mogoYkSDBCPZXZdgFaJVckwCMAJagFgIl5zYFZRFpoZISNBwLCVUIaxEYs4hLuwo4BjCA7NADWQoZnwEJM4mLz1HnlzWVdwSSFqyGvJr4kXI0yFwFdsYD40y62Qea7biw1bLAwbejXE52BcLvbQL0aM5+6e2LbSN4AfkvdVWxlnGyk+q11Y6POZ5DlIceHkeXKP3OddNFnrd+S54pRsVFWFO7ym2nVWGrn9CzxcONTU/8W5LuyP/lA0MTJeJW2vm8R+qv+LbiNwf/uyHrFb65VeZSxlEQWxw8ud23/m8tj5lrf3w15vF2bn1HO8UIDIYbbAfpc8d/JTWxhUYuim5LPCoSzWb8lYI/4EMQMDMF5dDbQ+HPwuiOQFQHOUJqx0tg4iWQl1zhFVFLpqCmw5YpocQSQa4qOIM9hjeBNFK+4NfY7lwhDDqPqIjccunwV8r7mGFvyrWocg0u+LT0UBWxdEYhuR0ALvvOFI6CvMkSsh5tJ2AYON59nEOdt1NTNEOPXIEpLXABrXiILOZATRDeDLhe7QA63IjFgAw8pQYxZMT2T576tF5a7cMzYMcvABJ6BJQfTJfCr6EWrXeNoVOLvnO7AayTJE5XmtMnQNgZu8pXL+DSnfd+WIZ2B5VfA+BWB+U6PJEuoZUsolCyC6sdiPb6iZRUofEVg/Qh8UFWA+KpA4iu/zSNeAeOrAo2vgniDUnWqy01mCKCaB0U+nzZJlLlodA672CRJCTqljmwaqjzAjwoDXXQ6nApMCxCdk7wAPvSHS8h0eRwG+ZgJOqt7wN+IusdQrqg5UG04H5UgOuAdsdnMJYyOmgzA7wJlhFdGMxECEFya+znvyhnkHeF2IqWm/ezolSEgU/vuhLKdCghj2YhGp30XGMJdQ6EQIqKBQbSJnFo2q3vBqKyQqdApZCbrO3gf1W2xEUgtqnKpcdKUTGktvTkepNCNHNcjgjWOj8efOIY6W3hIqVrikHAMdWIsnQR40R0PUqJOrOp6sTq/mLN8BnZXqqOQhNqo3PT9VS8w1VFVpgRQBaFDCaMDijgQuMWWVqF0qILTocjScPAMYhMr2uu8JToCaDkiXhx3iACLWqTz5gj7gTM2tkE2R9znAQ6bE59S06gQZaazUtFnhsQC0CbaCoL6EhCElizeON7lqZ3wG2bGwtCBqcSzyj3bZW8bohtW/K9AXzO8ihnsGF5tMTkYXpUr01/ZvoXrf/P9Veiv6NHDcUSfIaLlzrf9lcpD5QQ5jMOLm3kIg+9ZnPGkvbh6ThRVocmogiejguTOqcNB5Ca/jbHZhdAdvYDlA/2PA747mkIOPYLO2LkS4EkW4LI3Aqk1/PbiTPCwBqllMZWUlimSMooAM10i445ppVzuhdmm5CrS9wHPvenJCsQi4Jlsxb9zPvRXsb+ilx0Ljz48vIfrJQVs28CuKwewUBKC5A+qm+4VspAq2EIqjOe7UhW6kCr4QooMIBds9VCqMIZUQRlSJAHBGqy+AW5KajfqA8hTwuAQIq+KsVpk6sD3F3yPKH2RYNMukgC3k+RBcAyVDgOWBRFJkVo0NiiVg7agIimSi1yoQ20qZCRVsJEU+UUjmGVV4SOpgpCkSDFyIzHeqNfBnuJtF3AUJmcAH4CYbXAR18BiTMcWA8EcAMs6OiTkpottVaktqE6K5KWRka1wnVRBdlKkLzlEMivTrUJ3UgXfSZHB5KAa1z5NZcEUlCcVJemWqUtQWTEF60mRE+RifdOMlRVTkIjUFhaRqtCIVMEjUlGAwKGKSa8wiVRBJVKk78AJUxuCVJneBd9HCamnzuJXqTK9CyaOSluQrqniHi+oKEr4JiO7VqrMw4ItopLMw3ocR7gk2K8QYuGisgT0SiBF/INmEZDki3gaxPsdsxPQmGV2Ati3qTN0kyJmxjcuaUEqNy4Z3iwFLeb7Fn6IqhBEVMEQUWRiuHqOAZUq072gbqgkeeZc4/zClQNVme0Fe0ORjzHi3K7QN1TB31BkZLiRQH+FwaEKCocmI8PVA/1yk58aiuSQE5TotIArjBwlKoKaVMVWlEbB2csHBt9YPnCAes2IJxwkLglEEQuuJc6+zNZUsEZ0Ox5/0hXSiC5II5ocEE9O04AYpCukEV2QRjQ5ICPTRldII7ogjWhyQOrTRlc4I7rgjGhSQHwdFiE3uwXKj5Zi99GclY8GZ7J8NEdNn3Sy6PPpB5xCfVUyZq67T+XV4FMV2cbacQVMt8P1pQtiiW7DtpGuZBwriCW6lVyOpv6thytMF8QS3aYtn2q4wHRBANFkWfh6agm5yaCdoWubRBACBdqOaBdiFwdPmWGJoz3lODjuChkQvsPVHuxbAQrpxgP1v2hj4ULSBftDqy2LqpL3VBf0DK1kUYXaoaMr/Axd8DO0MqNboa7QM3RBz9BkW/h6Lgu5yQEG2VK4BG2KK24sw2WWLswVpc8ZYRqkrG8T8NkGIeJ6Ap4QhvOK2Fg1GOJi1arx00pX8qHqgsWhlR/Xm3UlJ6ouiBeahIfRb1RZTQVDQktmVFVlAsjNjhrUZ8ojb5TBC0xGauISJYerXQCA5PcjjwahN16R8oEVA/BS/s3VWAC6IGBoNW7a6Ar/QpfpVyX/ap1/ITd7ylP/gitOGNn+wt6lmZxAXTY992kNltaxd63A/TGtVKhmKixzvOoty7SW5XWQ5lWPBzDl5vcOYOoytyZpBCMBSF3Lrlmm1yTufiQ4o2sJNssMm4LFr0dNdC3HZplkU/vx6EZ3k346IyGLkJmHSrxygmxqO1RIih2JIWJALSMGCGh7cZZpDrIBzCMIjctm501k5EbcPZYxCcugOGISAN5axiTsArScnLLcM+gAkznx5JdOkO7cMlaGxBB2GCHTZaZQHcYDArqWK7RMFiqA/Lo7VevKyV1m9SRkvu5O1RWIvS4g9tpIMuZqREJuhhydlgzuPqNBfFICEqJzniAhfDwtEUGb3f3AKUq+hBbuWCPeyQ7dkXDCc0Ik+uyZEwTeCWajR5xUiBhwCAWdc80LOgjUIksMEYGnAsfg8iPAjoszZnqdRK5aKAucL20+zeCgtY3XEuFKDdFLC7oytemvmGACCTkZOZQr5l0wuJK8C+WZWJAHtNmyn1XSlOoC7q+NHndG6UqmUl3A97XkKh05VE1ltylg+JrYeF+PvekOhl/mGYCaszCrBAFcaqJ0eEEpIk0ufVIe4SejcsoRuk8XTC7HPiJG3VhmNynTyRaofW226B+VLKa6ANprs03/qCQy1QVIXhOm7kcSH8tNxrW2UvQIOMf6WlH0BAEH8ICAlILKuDpMUVLE4BASDzjMUEN0UDImI46T83mvgxuVubUT7FH2C0CWZ+QJFDzPEBg1E0aeAkCEpiPyee7cERxqgppp1VqdCXqI9XVXNgdBvJW1g998puoREbxQ/I3FHdBJEv5gOcLFpmnGvWe6gvvXBe5fS8LXsU9c2TQLwL4mPN67aporudmlu+FGwgOtWx6ayhVi/isVXMiqDE3SNMUJ5yWTEUaZKYK5GpzutHGmCPYlG08XwH1tt+w8lfyyusDXa0LBvasbdpUUs7rAjmu7BcWqK1lmdYH31sRvI8pT2/sqgG9dAL613bIhVPDeusB7a0KjPZSCyglZyRWrCyy1JjbaI5YXF60uzugKmFoXYGq9DUytK2BqXYCpNcHR3sVa/g9dQVPrAk2tnUx4BMkA/NjsoIKm1gWaWhMd7X01Q4SuwKl1AafWREeDtGESUi4VHVQmYgGn1kRH+5GyE7xJHLJ1qIrg12lLjEwRW4C9mmQlSeeAhSk0FsCYAK8fUvd0gcrWbpy/oCtZV3UBVdaEHntf9XvLTU0wbSOY1iD4Q0Q7pIYFiID8CwZJCc6IAkEEwo6ohZhBIsiZSQSiTx0FSgsEEXA6gvYQJA8CfxCQCHojNAMaAIs8AFKcKykAU6cFXay7mgbA1PEhONCUVMPoMcExm54Zs0j8nVI5os+kYLaVt9WuQ7wJWsQzTYeAMEKOEDPxnJVaDZrEZ8hteT6iRIOimgncDNk3QLzEDOwFLE9AvNh5BcXLjJosGUIuEQs5wIWmpYxIxnQw7Q4RGi2sZCmJAXeVt/mu94LPwm++vxL2D3QCvj5y/PPF0IuXgiCoGaJoROnGU3J216F3fLBZJC/ASf7GDwvdlW+YEAWTAeZvKffLkWPtB5YGacFmpFJC4YQdwCvb3+1fgshJSkLkJDuWL8f++pcQ5CST96v+Snct+MXkyvZX/TOkWAhcNCHXz/AETpYgMl0g9VkD95++njpYbnLeCeykFa4CJUkdhCrl5ArA4wqmCf59QRllMFXKSN3kjZRsQeyIMFsfUWulZYoGjmKrfUPwpzEddN5a00HnAfNl1RB+e04sUPtEF0yYGZwJPvMsW3J6BdDrCK+Se9jC8FKqA1cQSGHyZ4Ie0hI0ImApsi5SnkSGtVLoExdcf5syZgYZPBBQbonWyRh6Z7O2aUkwTV0Lr7h0LDnYuIo03+S1gamRu1bAZMDC6zavf8thJ1mM424zjF56tjLysOudy6sYaHhsWoLuyG1zdRpLXC12xm5ZImJj+58ocgBE1UvxF08fqPzmORUMNV/yCbjtywJBlR4Kn3wTWJwGu0cgTLdlDR/TX9ksfGj5lW0TiNK1oQlSmgZFetrYX6WuN9V2fQjWDs9iaRpsqEycgHAIsLbyroHTSG76vmnor/pH5NI0ugkcd7bQqv+tfwndv4S2+UsF3e3UQffP0N24Bxankd+4ufjUBNO/BhcZ2+biNE3IMPPSgVYwZjQZMGGkOk2FMqMLyowm6wHrsKZYVvKA64ImoclJCGM1aiRNOL0hXdE7nWuBEOTMjU77HACh54v7MIIa4rDX+QijwSZOMmSWEHYpHHeG44hMnpILhalkuPow/oZIKR7zkQZWplaTV+iYWgU/CaAM3QmMDJpuMATsIN8DOVZyhb/DAg/UEuChC7T/2miaIAlJ8HdEHibvmiAYY5CEaP/JXd//lp9RjnKhepK5EWzd8+Db9XoBio6ZBPYQBxB4LDGowLu1TCJJV3WPK+Lnl3nac5WDa2slA3RBIdFkhGC51OZPhUKiCwqJJtweclc7yF7qlvQ3iS8AIkdUN7dOnj1wvktiFJ2ylhN9l9sEU0QopSQPc+e33SSItH+FgGxIYzDctD3tU15J2IglxRC3QG7T4OjTiboJAqHDlxSblb/5vgU9Yy1+i32LJFfluBSauh8HGOlKpnld0AG0t1sMtkqyeV3A9jWB58GPfNmKyVgg1bX3Wyy+ClJdF0h1LUj1EYuvglTXBVJdE3g+ZvFVkOq6QKprn7ZYfBWkui6Q6prA4SBJKwcdVDLH6wJprAkcxplsCHMuOqisrwJprAl1DUg6XfmMklu+zYmEeKwl+KECww5Qj5gs1jZ99ibxa0JfFmYQYfId2aXN7mzZdFtBDmt63/IiQzJVLmOki9BdjiJPBzfxtwJ3x+7rJaVTIFwVmToCQ06ILdKgWwQc8gw5QYsLTMdT2p0F0FcHs8UCrwB9dQH01cStBnAXhsVGdCUlvi6Arpq4VUZXat+jsqwKoKsmcDXU0wHJTd0l5Vgl42HEB6XIVqlGGC6h9Y4jSpIbQc/xCyR5Qp4sZmkppSmrxIWxmq+6AprVBWhWE7CKj27g+SuWuCBqaUqEzO6Bc1QJcDanvUYGXnH32uzk1bQdZA6iPKGA1rEfW4EFoPwbo2iO5zM9vzDlJe0gM4dzL1chzzn+xpydyJkF3kF3JWkncMVzvISN6gKQqwmwRfHDalW91LHRoV9gncGh3dUk7uoND2sIS6LANlNXUCqCXgnXFcYE5l6iVMk2OfijMkUSy104yG3ynfIVciZs0tci/df0s3NtdsubdAABkOfDVCs5TGVRW6L/Ua3Y0aMN5kVgqAh1mYMseVyIVogpRwI71nLsCibju1COclyLfTaO1y7SFZyyLnDKmrDjUM/spCs4ZV3glDXxwYhVVDvQHfsOuhjVs2QaFkRB5I/1UJjekWgJo9byworCkmg5M3liwyqpDDcQxbWIUC+YitHhgli7VC7bAr6sCUcO3I2REaMQt7IPFvhlTThySHXnfwW/rAv8siYcGVt4bSeu4Jd1gV/W0W853Cv4ZV3glzXhyBETdaHbcs5U9q4CvqwJR0a+0uoQVLSLAr+sCUfGAZbAoCraV5SLAr6siUYeO8zSBoSFuSE1S137nFgeydAEwhJgyuerLpEvjOruKvR3Y/9bqkJYCny0Jtw5tnUdsoKP1gU+WhPvHNv6YZf0Rq6tPnWWbO5STRjZnkAfCCx1geRyWC+S9S4yzS5OwMg0u4P8d7qAW2uip7GlVcUxIo7FBkrXuGXiM3QNJnokPK+rGLD2kGJpEfkMFG71IZWlVUClNaHPyHxW7aCytAqstCb0Ga6ZageVpVVgpTWxz1GNfPfK2irA0prgZ6gw1Q4qa6tAS2uCn/G5qx1UFleBljZEIsMorJVFrSS8NwV02RCKHFU1CaapYJdNgV02hCLHOjTJVLDLpsAuG0KRo6qqmqaCXTYFdtkQi4zMXNUOKqVUC/CyIUY4qupMNJWE96YAFRuChFkpvNZBpaBqgSo2BAnHei0mU0EVmwJVbAgShouoKkGlrGqBKjZECQP3Ue0gdVuY96sSuaijmDOxtV0JRyoEzru8z8ExGggzRDm1yJSlCDoB1YDccaVQxewmJDjq+txSldldYIgNMcHYdqsd1IoOF7ObmGB47aodVGZ3ASI2BAXHOhjHVFDEpkARG2J2QQqvdkDqi+TTtlKoKZkVqofgO+K8sMWDiZcTNhIQBaWEAAV4tPOVVxncEE0rJUMiEaG+xBKbAktsiA0GZ70qJwOh4t1rQpvlVa0wNk0mu8HvjQhCxjozIyzOdUnrAF6tk4Mr2Xx64j2AVM+SWum4lLRYrQQhxzroR24mKaVAsZABMRED7HiFxzEZaoPAE1KmRmRDXpRzuYA6GyKXY71SuckJ6Am80Q0HKlFZcB1UlcPCaoVWqr9EDgFIEt0H5FikjHyNtq3pPqYAUBsClqOtAqjlpstZEUMGMnGWgdvuCZxRTepyFEqi1BCbFLscjfR/MwuSMAFAxCeuiSzptRyNbc6pSIMLVYdYnXERQdMieZvxOoFpmwxIahG3ZA4lYBKDlxzatglkJyB/S4hdikZWbVoo7Ecsn5OYOE3lttF02R2jzXkWmyjgKF7ZnI8x0jk+yMJoCti3IYw7jtU677KVtoGGs6JHn7m9UJ+KIZWQTWkUmpJcBN5IKBPUkZxpKru3kERBAvw5KzfAeTHkFFSCSoPfX8m+AJoGE70zRz6Dwt53FO3WpD4A3wUo6JtmYBeoS6LaeCX0evKmlMBBmRRUcRzFrgYE02Xnt+nD45GRak1nh5fvYkX3hacg5LAE8uzgmGHHgfEOzIZAsjx/kvQBiU6P3EfoRAqxa8nMKzo2kXMGscXI/AmwHSJtftykuIjXRicQWPymuwbMH+HLmlamQOsbPW7fG105rgosvZG6BqCpYemWHRAexgM2ETIovnpH34ShAy06KzsSsn/wX+jyoSRFmQKDbwh4h8Oo4oWXm93hr1mtDg6qRKi39zmTLQbLSAktb/PGhdMfoSdpITs2Jg6+VyVhrClw90ZvcYOaCu7eFLh7o+24YWcquHtT4O6NduOGndzsBmZV82Kl+azeWCw8RP7EwgP9Siy8QBCTycWwxcKrjExxhGk/buHJzekWnikA84b49xELz1QA86YAzBvi30csPFMBzJsCMG8IgB+x8EwFMW8KxLwx7biFZ0xlRRZocGPUuIVnKnBwU8DBjdHjFp6pwMFNAQc3xmyx8CpwcFPAwY2xWyw8U1kEBUrbGLfFwqvAtE0B0zbGb7HwKjBtU8C0jQlbLDxTmYkFCtmYuMXCq8CQTQFDNiZtsfAqMGRTwJCNbbcYaLYyEwt0sLFqi4HGm9/BQCsgx8bqLQZaBXJsCsixsWaLgVaBHJsCcmys3WKgVSDHpoAcG0KIWaeoRRLFooMu71vqcJbOrYjLEs0HolDOQFonBM133j1UUQ/UI6EMQmOxzJsTbVfeIQqWweHwDuIxLwUuVhMhy0AY1XRLyWlNRoALPYE3lw5N6zkRwN0RDnVO3JdZo8g9h1yz4uuPOH3zVZf9L5J8F115fhRYarMlL7WpQKlNAaU2dkslSVOBUpsCSm3slmKSpgKlNgWU2rgt5SRNBUptCii1cVvKSZoKlNoUUGrjtpSTNBUotSmg1MZtKSdpKpmpTYGBNm5LOUlTAUGbAgRt3JZykqaSsNkUMFBDNFmUVyjRCaaSsNkU8DNDNNlIPUqTsWnz1qM0BYDNuDhej9JUAGymALAZl8brURpXmcsFNssQEjVSj9J02KzD16M0BTTLEGk1Uo9Sbv5X1aM0BQjMEPxEQ7ay8/Imk2jC6GQOrRXYbVUQj3Tl1HY5nwDe8yqX2fAsVYytlvS5gZehAF+ZLeArUwFfmQJ8ZYilGttgK+ArU4CvjKRFref1MRXwlSnAV8bL0q674niTHDg430i7i43n0abojeL3lNSDsStAjxpldJosUKk8V1ozBBwbSQzMWt8pSBZbw2SaSAFo6CwIOgPlomSTQ5U3ySbHq9hfZXhcE0PbX6n+SvdXpr+StKqmicH1vxHvEsqDtECYGQLGmOcmIjViMUoSOuirgklZGcdESFgQgRhm35B5vUAm88iq3cgOG0GfIZAmEnBpfLmPFVg1I1lV66m0TQWrZgqsmiH0LALCMEQmyU3kw5BSGOJjYHEu6lcJMAt+SNQt9KYrTLT2alzdqPkTWSZJ68EaKrZFItlQR682tmGdHsgK8grCdfRARWIy3MCBUP1kIEHnS4/UsGjV81PAhUtkGYt4x5RTdDSRCAs1cLAXGDtDyBzVSxT+KzbKCsbOFBg7Q5RZBIyj9qoVXaKApRmizGK9yJapwNJMAUszRJmBjFqVoLLhFLA0Q5QZWB1VCSobTgFLMwSGxVQtwS43yQJtuwqQfQZTpMMQ+DfrprFWD+aoYkVNlM9AXVNJXG2SLD3DKgQCvbKSUZQUIurgiD/08C54gJBgWeVwC3aamAR07ZrY9xeZ7wi2eJJ8RxpXSn4rX73YRQhqS/UUTaaCgjMFCs6ELRmVTais/QJWZgiHQprxqgRUcFjlQQkfjueoEhi00NZyPSjV5kWIEl/04LZdfU4EtUjnoV9YXOlaciMjFyjZbpiAggLFZ1Y5xzw871zq8MGTbgZ8p5YiQMiBQV84Mpux5O8CeNtMWlO5rhfgn1qS2vqQMxJLUhk+AmEc8mgQ8ZAMw7gryYEDQf3UdJxkMM1XjIxAKEfWGMAtTL+KZMWJ+RVQCCNJx/jJ9z91faQ29r+l7kqSKhjfpExqwG+S/bVJZKdE3mRS3SYxHSzw4YnkFLxgYlwGoiWm1VVldjxT4N8M8WzQvWzb+x/7CVABwJkCAGeIZ4MhW5tBUXVJ2uHplzzCVuIpCJowQzOyM/dcfkbSQLJkEUiUSqEeoEgRE569E6YL+EeZ906cL/hFXtgZqwq9PdXf5+q5+VjAuSz4QczOyIAH8nQzRINVnqTeF1KhaZUr9SaphYZPwMLEEJOlyxexXOgFyM8QRZd0fZOMlX2+gN0ZougQf6x2UNnnC9idIYou1ctumQrszhSwO0MUHQpF1A6KCuzOFLA7QxQdInvVDio2YwG7M4TRJVNHZFRwd6bA3RnC6JKpB1YruDtT4O4McXQgd1VfoWLxFcA7Q5hbquYvk3su01u15IbxEmk0nQtRdeV+WZqUGwDqWUtaIGZ6dlKmz3KbzJHcGHPRAAkjShltn8GzwoLC2We4iUFzM6ykE5POWTCY7YdbN38jqQqZi6SiDzIHSmgYEWTLfVchZYGRvBmG56tEXZJkromhSVKn2vsmcZPH6kjG91chPyMJN0s1STJo4KdcqAplWySk6Buon7kpcdmIyydhUPE3gRmX5mQBOzREESI7ec16kpyt+EActpyVWz6HsXK0gbMpzFBjGnIY2rbL3E3GtJaiYX0W78xAQtGJ2OVVx54itVJUF/qFkSowavSXv571uT44f5PvyAqSPCCUyrYWniTlpxHjkq8nOhEZxPh68s3giZBvhrSuhDcY6kQktoEsaQQ74Algx0Gjqekj0htpukjPkTH+1ufPiJ+ShHrb2JAnkq9yQcbyqxS7J8GU6Kq27FKX9L6NwtW3LHDVsdSlNI4Srj6quchRw0Iy/JuspZBC2pJcC08JCaVww0p9BlabEnYxKzVIIZ1IEE/LdOW5MFcu4NtKpTeSMkGNE4q+eGOk3ILuGMesXhIzVzZzjjFWXMhghWlGupmaXspUWalhKGUZtNDV8fJR3h4LnuxaaEicRigan7nJ2YQTWQz5sz5XAtesamFIMwWPNpOTYTKR/4yAqZR5MFrKlDKzQWYu5zrpiuEL7B8tF6jsH2BpS0oA+LkNCdNQWoxwiQmmUTmHgRWSMHjNHKCQSw1JhTHLtpHVf3T+zQk9G3obhQJ9WCozIMiKvNz44JKZtCWm1wtPWkkiJWkhKhxJ/qYbAi8kZih4oc0DHkjyx2BEThegWABGkP6YcWGBMqSR1Hq0iHwuvBeJZGP0n8gsRtsktPgo21rL+pXJdZkXkvCzjW0S9R48N/Fp8ne264XjjLKByfn8vsmF7rnM0CAtuvdNvs35LBLfknd9V8QO1Pvc1nejC1JqS/RXyvR8tAh9i5iZz+Ao57syapAvqE6q0C2KxKnLtjnVwmB7LrQgAp5TPVO+qSStNgVC2hDwnOplyOUmVzbL+mmpdxeyt4rcbDFujGSbchkfR7XTmLzxI7Oh6J1M2Ui906hO8YShLIonPIqRPAzdiuap5dDgo+GOSSwFhAKTiUHA1oq+KS3oLiOpLdG7GlXpKCrQ3YZgbdQwrG6jFQ2uQHcbgrVTrCtgFXS3KdDdhmBtuIyqHVQ0uALdbQjWTnW2jdxkuRgYBzw+Y65+gnGmqoLjkeki2iAnAT5GkDwGMXuPdE4HkesnCnNcSZopLX1R/ydfmicsiGHCTmwhG/a9hSdqiids6pjebffxcfqJ1YFCZmJ2IEtZpKqm6JTSpF1Eqf0JXCMDhfh7MQphByL/CJwZTeKJC41Iivgk/OS7n8Tq9E1i93IzdZ3xAS6VgKQCF28Ic09p5Nul+ZeODHJLJ/z0RUQemLHPXU7ly2/q7bbdUjdKbvLbJJl3pFjhC3Wli9tObQf/VbN8jQs99RyfjuEO/pZyFgrDl2aeAqGeJ599V7CKpSQx1BLmeVywGpLORFkpwAJdBCqiMF9XTFmWJkWDZF0m6SbCRLmXCIasNGhtwVGwpBxU2Zu2wlCwBUPBknCA4alMJlthKNiCoWBJOGC6oOFeZisMBVswFCwJBwTuMnVK0cHQHrYFQ8EKQwGuwSFJ3VYYCrZgKNhWYM2+/grD3dQWDAVLwkGqp+W3FYaCLRgKloQDqOPDtOVyT7IzZb0aLFfdVaSVdCOqK4eGjONMGyXTPHZ+PaBYRZemfp2VnpTNINT8Em0Zioxoxq3tstwqloz3eTPJBct6fCzS7URqHLZbNLCKpGQteKJSn1Z1eizUDkNDE1q+oZkDJ7AorW1QWVUFUFcMI8anWESSQUsqqCxcRS80FksuqGm7GpfwDUpJMhOzJYVSUkmyQnVeQsVMUaw+piUShANKZUQrnhXJZ4XEke+q6WYOuYXs/njFJPAXKHMuS5JoIiDCkYjC5hZITQ/HbhL/ZxJNLzf1pv+7TvYkKbVUon7X/V3MpXcTU0VB5MThYdm0Vops4qXbNj+lnH6xmH4MLYFtPqwnKDdZhho8bSmc3JVzZK4qZvLA+4inEBsrC/UY0L3pLGT12Eg6MixgxgeQ+30tTXKfCtlxe7Qq5xEghleY2cBgCb4+ErVFQL3mJc8nuBlhf0teZMU8ucPUx7bg0VjSYhSwn7XVq7ooF3LSSMpLltBgxILKAZUBhK5aYo6RExaEaTAOJNUrKArQ04WBqdo25w7HZRQmZyFiwdSxW7L92wpRxxZEHStEnXqM1FaIOrYg6ljybkYqFdkKUccWRB0rGf2r7jarKnt8QaCxkowfn7j6kVyGF1ikeyIG3Dd9/YBVHt++kICRmqJereUpBZmBVBlPFLJh2IDMmlK24vhQ41UzbCXPvy3IL5askxGkga3k+bcFTcWSYKFaVTUH5K5huoW12hWbYL2tRSxySni3BpBbFR5ZFQ0itB0IlFLaYrPZkvXfVrL+24JHYIVH0NbLGtgKk8AWTAKrt1Q0s5W0/LagBFhJy1+fzbqynArsviUUXyFWWn0Fs1aZoS/42xOgJBu13axlQE2yhfuGaTwlQ3HHhRK6GjafngJVClgsVz2e29NWqAG2oAZYQvI9FeABsM5WUvLbAsNvCbdXeKHqCBHISf6ZlXpvwIYK1QvVU7D7sxoFUWgtUFvAheHSry6DXJaSFKuTuH2FHG9VSSrLs0D6W52XZ33vqkD9bQH1tzqN6vgVoL8tgP7WyIqpM2jlbrcj9GBY5TpQmGZGrejTyPrvUmBkNzUie3DuspyNarXKmS5Uy4oiLc9ubWpoXlsQDKykm2913TqpMAxswTCwwjCog7DkpqDRVoUcewy4HPZI0CiwA/jnkCmCWdYUqkZLIUcFn2r/a6ilXLMFb8GacXCardAWbEFbsGQhjOT+sBXagi1oC9a48cRetkJbsAVtwZotqTtshbZgC9qCNbKudJV2IHclpw0y7ZBE5TNTtzWdXsmMuDTdYVCINgnHiNjpiNoLsgR+Det9vhLFEvW3xYmhtaSw0QwkIHgPMCc+JikCLO4p9bOgYAoERTNGIaUcBh+7WP+S5b019b3MxDUY1UpV6dFT2sWMhZKlBm6wVG5htlwn+Luwwfm1PYfYMC2IpuCi3pTCFluNGd9qKkwOWzA5rJWtxlQ5C9Z2gVWGuaQCt5P8tJ7RDRq3SrI3t12k1UuACAlLZHyskRmhJXUZfF05aTMaS9JmpEkScm4TO6+X5O71QJXJHQkzAbQlVcDB0xPwi267MBOLBpGpy5y+WgI6JgeSYFZLFllGa23MWZQF3wL7y2buauhitLBSpfg1jmvJ3awEhEmhLA1Hvr1Y9CajYBRsWfJAdY6qKJZiYrwBHjG6+VQrplO7kFxIPj8d0SDJOYxsqfkqo2sSUx8qVjIOjDzAsAsSUfCyASJmEHNUpRWwnghOK0aewVMX6aswtDpmuVQr9b/lUtBGuCJpmz9KHk58r1Yy2cqvuvtTxpHxSVXLIuDyo+uvfH8lGi4OHnoTcp+p75PhHMW4Ys50jCt5UDG1C46RlQoErJtSWcaVGgS2IARZ8ntUWy9CYCuMIFswgqwVxdFV4y5ylw4b4PTICfY58ApoFsN5gCbYbr4KgAfHq+sTAEqxmdghdhA2Fv55zhuvidUUnygOQSuJPLF5CQ0ZeAN6IyTfJ93tOS0g2M+eebDNwqge+NOnAwSlAMxPvTAhdQz0wOCVZkJkfjXFckqKHGw2Vq3UF4fbhg6n7tfUX/p2dalWl3LCozMWZ/K6VIwLRpUlQUq19TLjcnetplouarxS0+kXwTivkhc4LQhXn9UMjAQ9Go7bv2pZr2voIyioWta68TyXtlIewhbUKSvlIep5/OQmM5tZ0ZXgeFklaQoMgWmelShTRZSxAgE6LBQ3Bh9YUwBX9HmUWQltQZCyUmyiXidBbq5quvUV6gRqiLCUTl0lN6+7qtECfoFvIARJn6E7ecnNF9EY5W9JYhmUsLMFDcsKDasNddVa6l0wVuVzYgKkz6OSbZDzLWW4tpJC7V4QA4YJ/h3rzsFDlJiwODJrt2EpB3EssVwN3R3G0rSDE0xAiN1VEA2lUfCrSqRFAfTZX+b4S/mahVZgt9jsFa6YLbhiNnPF6hZ3hStmC66YFa5YC0V+iE2Wu6ZLcDFYf/30EAcQC/mQewDKjnh5AomgsGIWqGygEJziAizlKrZ0N1782VYYaLZgoFm3pZ6VrTDQbMFAs8JAq9P4bIWBZgsGmhUGWp3GZysMNFsw0CwJZSM0PlthoNmCgWYzA61K47OVBOi24I9Z4Y/VaXy2wh+zBX/MCn+sTuOzFf6YLfhjVvhjdRqf9ZX5XRC9rBC96iw8uTk3C88WBC5LAtUIC8/6ylwuGFdWGFd1Fp6tUK5sQbmyQrmqs/Dk5ndh4dmCyWVJzBph4cnN/yoWni04Y9aL3yzUQ5G+r2XZB2lQ8EfSyAOQVD/RQUGjlbw6vLFDRiFKlRIVq9uPE51tJQG4LUhV1m8hOtsKqcoWpCpLUpNqQ939VskAbgsalJUM4PUMMLaSAdwW7CRLstGYblZhJ9mCnWSDWA51wI+t0JNsQU+ymZ5U32Qr9CRb0JOsZM2Gc8T0Po9VB4zh59xkct4iHBYYCBNPBDl0tLlhlhKmqFrOdNpgIA1IauiWiXJQqFO1PV9MwW9YcV8UHCgbJE6EVEgOYNxCTNfNf2hGoo/BpKH33KKiCnRBRQUQEY2FpSs5oY4CvMgK8BH+WopRLMMgyzDVA2ZB3NcseZGrJ4IkIvIAFM/dxGcsjsWWoIRL43KExue6zAA4yg4PF5htqEEu8B8mggIrxpDfgsWdKyqGLpGY7QPsTNQu1U2RS1dK/RkOB8pQEDIsBNFsMwG+rNrEsCt/lSTx2HFZH5XDqlomoC2JL7bgXtkgnkBmtKp8s9BhepB4uiC8dkRXsRSNkiT3rc31SSCsZMYO3O5dLrYlRXaRzCFDdYAX5WsDy5doRACHrxgrZFhatWSX8VKRXtYKJlkJSxWXgnuHm7LtmK1KtTbXlFDY+c2iFYKVz+nTFEioeWyRgA1e6PKkLrhmNkjZSFQ0B6+gOJBCn5cOICaay7Gz+W3OIm60yrnPXJeympZ1hoEDAiLUrpxOHAsZ5ch0hr9zXmIikXQDBAAR2syAQb+opvWfx8SQIkE6FkpncCBwPlMGKZ7MAqEqB9eV+Ntcy+nO2ej5qxyu9My5/hHKr5qxFDLvx1Wr1P+pUIlwn3ULJAMcwWj50khX5fgXJwqZW5oVEYZHEm8SbM/UYynnYCc2AmgQTkeu4lX9TOaYARxPk+4OhpkkRiGsQzHXo5eMgbZWLdMWXDIrXDI8AP0WtnxsO4ggNgUWC1TZOrUdBjNxp+YX83ky0IHDJWStVP9UJPVqYmnowPGS8sXlrUb652JClFiKJpNtoDIUhO+myUfkfDbCOlSMepKlIaVw5G9Z06LlUkI6vbxokM1+ETih6aaXX42gMtAv3fRtyd62BX3OkinGYu8BhRSKMasc0gW1zEaxBZECs7KPSQL5XCncZWgCUZJt3q1w7mSepuaoauELrNUXl7Q5iPIGZsHEVczT1/bYmFV9cQ4jDrW+qnjiRJRFxGOPaQxBEsqwGSXFc7mKWLnV6VLFKyhxNko0C6lWK/qN3GUBt4au+SAlHUm3lKKHWvYpmPeaLkmcYHTsh8xM1FGK1jGLEP0+Hd+HycLpyfVSog6eKdJWmc6NIQWGH0l1jNnT3zHU4f1XHaEkho48goFwwkxAKNRlP7iiRxy8Q5UZETpvkDikpTgdS3MTd4+Zzz9jXWCpUkhCEcH2jZHqaaBryEur2BWkw3FLMgdWmnGCd7OZuIGiaFInHJ/KSmwEtFHSA1yS78/Ho2C4MBXgCJdxtVIQj1dEmcHwJt+BKcCMlOEzHc8CMGMOKwsjSLTFdYXhEqtM2f4q5DFBZlEZJwFUt4HoX5Ez2Y6oQM2qJTiXagN80VFOWsRi5KAQGbg75PuK3I0oERqTRzUfCQDccs9QTJ2rlIm55oZS3IsBpVBK3pe7jlS0ZH1CBhzypZDj8AhGHFoe69atLv3qMnQvoQTCKL+mvjPXdvNHybeUS50/v6LCyV1fKRlNvpBMO8tLv/pbGWSSDuPqb1Pfr89jWi7aQp8nq9TViwrJzZV/tbenpVwsTVVgmoFxEygVK7YxqwRukkgsRrnqfa5KUXVk8IW+lgoOpaC62iglj301P5/cdbmmppH6mSmDm4yW6Abce8J5h4dd5+iPUN1D1oFCRr8q8ShwRaWuECXyG8Jyx+HYFaDEx84FKLGJCeWdRe44HYF0lJqQiEUzOsY6H2QtJ7IGDQdUZwXK4hQWpI/u9HTkvDFSawVIcB6ykIAYQh7GhjBdIEKtFEzEISD0BmjmVvdXPF0AT2T0hH4u8hyYWFZKGJKPpLi/8pspOqj5zZRYdfSsLHi4SnVXuR+yKq6UJLDlh079fYHX4scgtVHRnmR9RqWVcDXL/Ay2oCzbKBi7ESAH7zIjRZtZJciiKoZeCnkihN4CUF3qApOhgIqwTcvsAIyv05/TdrQRbmIq20ymGxSif1UuaGdkKCT3M4dCi99dUWuWPxAzjb+y3C18L0qUK9rI1AUXloOZj242Y5yL8IdAb39ZmtkW/GwbxefCCoFDfyTv0uxJotsh6NTRYBGrFT2Dh7BkSUwmDxPKHjl63BDVcaKFYKmpRBWVyYKkAUdJM7GEwhnJ20pcbolx9th20RZ4wdxigBwsWOM2it0zAkONnd0DCDtLLoFQQdIJYs0kNONANDL1c61oVkbuOHR5x8g6MM2HVmzxjocEr0ZWbsGfB+ye6c45p0iHkYTc0BuEOhQNYd+aKZeoc+lFFDULGCkyV6nqM09utKtLFhuiZUleDcZYKYaH8h9EuSxHrbBWosRuYp0yE3tzRXeps3W3UIT+TqsMmpmR79lR1lEm3HL2wHlhGVBBQhbLuJUjGF+Sd5kG9q+lBW/lZdEicgSItDHMahR0N2vEIGQWIP4B2PbYHAcTv7B7ksBPUt0Rz7tcui7z+lE7WuZDTpoCt4dYQm3IHhbKkillqsmrnNwI4uIwx7g5o3B0nhrYknN3sQdZ5AAjonWp20MCayWzc0GcsHfDt+ffYprkPUT+ILT9r0GywcduD5GlxD2E+zU3C5a9RvpSA2p8MXwF6d4mwZlrV/V08y5PLmyquouVCnoiCDvK0GVshMWEcAZt9iD2fdvFXFXKxz8ubRfpVlg9FaWgIKHbJHZWquYGsKuKQlD1xLS2QD+s9BSm6IQRuioc4JjKE+Ap30UREjEDSBSzobngPKmE4wuCrE1mvLq93CT1IeLYyZ4667NXhSNqOo6FQU0wQjeIU2NWNpQ7orGcMgWedkqQquI22yRMaOCJnMmVVGkRwhnWsdAUMwIxFZfvUnIDTuMlRoLfYpuf6FnHDda1F54fIkzMH++p3dGpQwtBwhtihxMxAkSaUnSg2bJOri2YwZZkWaWRlbcSiOLdnEsge7U8o8Ji3YmB4qNkNUKqd6lIBwYPR7VjOAInIjo6STRU9UjPFCwSqCsCXYFbMKPNIg07RZVQyKgsNS45lqjKKY6t4ZYCzVMgiXBtmiBqCcBtKvcmNQJYFE7IWrig5oBjl0Vm27zJSioh2z1LEiSxujf3biiFXhw3ML+ovrBYXwb2SDFInTk03W4iOTswNpjrKp/V4kvFIOEb5H1HU2iSsDR9evlXFl4kBEOcRXLp5LL80IVyT1KzAoivullXQs8FDdqS1YxMCrWTLfkMNgxMWsWcLXmzT7lcRCoyY2kWLOmyYLU+F5IQpwDDcGISmG6JwVyTLUZzngicydPulxQkYgjAmad1zmRlrMoJpITyBgCSFJNgPpjQJdqyqr8ygmDDsUKFlLUDqNVjB6MPH/1Re2fyrazWI6d+8Bn/JR/ZSKlulRNcdcq8nElU5ukqFWU+uV6b5x+INs9fRZ2PqlfnqZPk1CsASrZdAizFuUKxlGaOLRbb0KoD6SpNM4wJPZiHWxgoLBuOPyhnQaHtkpoOzc5C0yu32pC3WpYWFWUw5lq4ot1oyTgq/jY4nm2bAcWZAezNenVS09ckpesUKjDTqES3VpvUkjMDlI5jQZeQpPijpMUTfZCxfNcl0lRaMk3jV614fHG86N0GSlZpatttWa/CFsx8K+R7DWdO7eiJ2VSSTYm7ZsymklnzAsu7B7CyxUSNcd2rK5Akn20moJtkPiLjRFZ4kssxleB5qkpN12xHEZcjOlCkXuv96lfmp5FL5g+UuZn6Pwht/yt1ILCPsg5kfK8DkVkqSlBUqhy0QkkmzVzpEY5GykoybOwuhXyH1m4zWUrn+JMc4p0NaYjjJZMbbmiqjCGkjDxHeISRuezgpu6rsq0tnts8MjQDODDiAuPAEMQoA8P7lEJ+5LigiEseF6IKZVyCGZzAm1q0Exo9ozrDjVnu6i6pAxe2Ff8tjSqmD6CzMtvjktwhhBV4O+r8N1LRVmfnrCiB3KNob0m9apfVa5YAFopy6nJlQZkUV2jI0VucjikHo+AoFSQq83+0krQqMOcMjj3JCaLWPJuJWW5Trm8rCQu0yi5JTXYh3dzdJRNiefHQ9ZdainHjFbSWomMel7S45Q/M6le7unQC/Nv8OK7g+zupSVhP+C03a8A3z0A643kZ88LITOaRae07JRy85kxUBeKjgoF0RQoB1+px3I+rpBBwRQoBx4wACgZ1ZceSu5JB0vRJHTaTOZBP1BUzl+ity9ab74KU8OlnXw/a07qGy9wmk6+8VMYKoYvaMnOURG3zrynXMc9LlZgAncuzYcRoxyKiqDJ7CC4ERgq7XxnCjGzm5NdycEwxOKIO43QfBnvz3d5ykgOju0Tu3QXA4kozeTbS0yi4IbpvbVL/rW3b/4FVq0stl6WMtpBRNDlbjXzJXVr1AJ52lbozxIFrATFaUWdi6LLqmXwkq57sQy8D09IhcJ+EkR7yCZu8zsQe8lmjymlhJN4F7YeuLPE/Ct4DQR4kdsm/akvcSVkhzxXZIpxkiwDicmgjy82u/rfQHlTm2zKJKR0svTeJJkUUS4WaIp2O4ieGy0T8xC2tV9nbOlWE3XP3YoZbGanYncIrxy7qwUkSAxggkvCN1U8Ik4ftiPNHioOLfphU751wunf2JtN7J1o5dSh16PVD+QPqh/IrTqBON0zipOAW6zivfAfB04SW0IhF7TP+Wn4AX3yAsCXcmO/+T7jxf8KN/xNu/K8LN7oiw41rxSqxqQbgd5UivK5IUuJaUdFdW8uOL3d71BP5omEFeso1IaNoCTj3mKAKzC9xqdjO561NH+sAx5lqHWi/jhw0wJdEfTQ5i4wgosQPBipUINwId4Tc5FBtsNVdIUWTmwrGrOUX7/+OhnIGRuHMy7AmyTVCf4sz/ZXNUCfNfKJRfvQdlEkLI4o/xtWPSRBq5UgX+r9kRNG+rX4ryYjSZY4gEBupVtaqJ7WCIEmrek9EPhNApKR0BKeZZHjX+QzpfqUWxl81qyrRuoNrhaWWCtGLTClOMqXwk9REH6J4XJErxTH1idK+yjSRu0xpihKaXDFOQs+wGyTvuslaKdwFUSJKJnuTWt3lMe3opVF12ZhihuK1fcwd9FKfc7BjearocoZbCV8i1iiZSJG1TDOdY+pSjXJ/byXjd2+XZl1BSaCUtpHGdi3CSQ4bRTijFCs18GNw80e2HTkJNRN+yj1JsgS7XpIsQS4xudqc/gb2nc6JaxH+ELUE6N4gBEMUeWC6IxzoOWmnyinb8VpZPzGqi0u3Pi+abkulj9NE1+kq+Q9Ihu28CCJQ1lXkD0Lb/yoFYtteX2n7yHRL84iRb5wySvMJ+ZIeXYCTBQGQf81voHRo+x+DWl1yaqDXIIVcy/lYGEfKbIl8y93/70a+XZFnyCm7JdiZ7zI3n/gC+4xWioR0lcMaOcCJEjj0wktxBYaUmWzM5N+shGPgoWWAU6cc34TnxQk0GEW/rWzWjhnDjHBUJJFAsr0xKXgImjUWmwIX5iKUuEVXpEZyOTVSPeYpd/8n5rk2fIU5J9mbmMCkNmOkzBIWUaKzqyV6M+9l3LWTZDJA7kgJIuVqCtg3RQExOcU1lDbxVyDzJnXlZMSKwMQQZLZS3QkB8pBMTvjxZGujBWBzGoN8MqDqRsxuzi7PtOucZT5/F6h2ncKCwFDLGRAcP1UrpQu50SNZirhrEY+XZHemy3UHoIbUv8BWImnqLBMX081GzoY4+8XKZtNus/ap26HJgco7tDP9Du1Tt0PLH8gO7VO/Q9s+2kBXlmzRpIfI0ei7WAOLPclOTCuf61RzL5c4nOYGHVeXtGGxPzN1umeAIqo8RkpzpPOl6V5V8h9Kq+7xTDYhfdIWYS5x+SgDHblIBOYkERjqqVSc0PnujpsXVxMjGbVtbLh5TdiykB/ILTBeiSgOLGRNAEBl7yqsAslcNgI4kLvfH3DgioxlTjKWISJSlbKzPHiSSsoOtzp5cxV62wSJEqlchh77LIMAlJVF2hF/1cyiRiZDfzwb12Y6gYCLWDxEMvEigTbdJphtSAYjbtLQn9PMtklGzPrhLcXDHF2SLHWLvUYzfy2qFSiw5/vL0N+PWTQluLDWD47jwpKQXG2mbauOQd7VUjsnh2atzTgI0x1KTOkvpAm7ZqMJ/4Dpb8QhhiUu25tOWaFpswmCcwqfhlM2Mh6TaUQ01mLbHVhUZ9fssez7Civfl7fdbsXiP9n3FXp9Un7lKdXaXsdpVa9QEm0gULsgAdHe5DOMsSMrjDIrLpFppW6iw6XtTDlDr3QoAVGuSHXnJNUdolAVMIXc5Yhiebuc/pWuEw+zkgceouaarh4nGXpQmVdSdwvBRbxAOYlKV2GKVThgJmmxgVjOl+UOost5d0KXdodJanLNKZutIRe6mg4oLJC1kpyWpF0wDY44N/LZCL+ezVYT0RRRiiF0fjLnxGpqme1aO3FeZaOJFVkkBz7MuiA5ZLtUt46pbnmAW91NN+VzMQbaWUYMuJiLMUQTci4gUK+MVAnAkmKknv7cXPXK5XS2PuN0W3Fzy6vBIAu+q62gWPoBSElNxYN1BukLUonucJHASTUG7DyayW4aT38fk73rlA1NcbwFZLuUqgdwZ4gPSZlcbSHAnUGICnQapl+RymHiXjFdBQaMQCKgGAeE1EmAm1PqJPCu63ITk1GXXUfieBMvUqs7CzgrP1F3egNKURAhANecAARyK80hYcZiBMcx7lgZTM8rq4jWLC5S/5uSVEq4Utn8VUYS+cqv/y97X5orvW4ku6FCQZzJ/W/sISKSkk4qVXYDbvcD7D8XuuL5VCwVh2RmDOW6W3dPWE1TzFVSvy7H9bf7o9I679n7T2Tb6SJb3jkVTq7Uh5/ALh1B6chEYdwg2R2ITTYnNtkkNhnvXWzLJmzML15kK0c1JdYUTEDoaOYzVw0v24ZhZ3K1TQ4BhQ7NcxrUvpr6tFB0h00cQdZE5BI4JRkW6zBeHH4hCA8xQCPESmVaxbTDzEsPcT+p6dTq1o1GSUcTLe0jCZIn/dhaV9o6sdt1A0Ds0tFhyiDK3XR6DIIbyrT8bZ/YgKpEspviZmyZUzsDvZIYGkIkWilhacftV0oQVZLyWOYoaq1oB5BoU2KVcV/265J1s8QBRGwEPlHWQ4WjX9+NdxkkpumjG6f12aT1WXBODRJeeVtxYDUi+BjyuKIkpllNcae3nTXFn0lMD354k84Bneg7hBkAYkrmqLTNDeGkP/9FgoJdY+ayUMeueO/P5sRGG7VDE/2RgrA5n5zv3JOJVc+2QwlINciVa+Y/oXNW9j5bNhNKV41OpQP0CTqV1rmsDIm/azpvAjxZCJ+vG9shbimTKKuXP7FzEQocezu5dnhkoqwmLv33didXaaTiH0aZobxProSnc+uwBEBhPpALcjU3JshWqKplmEqMWgncURVcbBlN92WEGqBYuDLsrR41mWXOMzPbY2XBRQ098T/IYuXxtu2tHgNK58K5Uaxpb+BYOucwIk/mXongiRsUqrxW+8K5X5s1chM8eQGxpoMXsYmsQyENgbWUwYcdkGe3xYQuxKyCdAbdPMcCpafdsG+XpHlWsAZ/fyRJ2t53ITa1qnWu2WbXTHoe4WpnDencjHnYUhWsFzugU2xWB4g0TcyP1kdTMVLj0oQ1D7J+x37lGlZ1meERB6BWSZjU6EeEI0fbdk2So8eCJ1Mgis0n7XpJB3g9hsUhffLelEvdp+KDAzkpg2wrl3qUCBrUPysmYcjLdP6zmq+7HCl8Qq3W62S+abrbr8tx/bN5fjC3EN2Vzh/vSmFRl1uvPxXWwPTPVANjf1u7nnB9GvX77fL6tHZ9Wj/Ouz1dd+3t+GnsTv0SGC6xc3oLBIabExhuEhguLyWLvHkxJGx0M5HVySaxiJ15ErQUrClM0F+MNc5a+o3xUahww7q4jiAtGfMYR/B6MKWQGMEWxGNEF/L8u6gyw1+89GZ0kERDRXTEf0d3BqemcQIwLHxLS6jwwuMFcNXteyhF07d2B9ITJg6N0oXJQCMzsi+H6Xz4rrhDreSUIbwRdaU89WCa0zVu0jUuIyQyqVVStjj68vhu+YS8HQwFJNOhSEch81Y4YZKk7IgnuLaHpNXjcOqwSmL+DLLqYXe0kkA6J2EJ7hTr2Ex8pXfI5CxMA1MEpFCXin+gocEVu9DGnQyAQv0ju5QJNH52OWU9wl+n39xK/oERbyUIf53UcqN08gs6WI1c3ZFY4Qpd5K+8j8EUgsaC1z9mjKfTcN/IxnmYPm3v5oi7jI5AvgYfckyDOvbz7MvkAPfBdQXEdR95Cb4ShKKZMcu4YuTyUYUeu7WdfVfb2HSsh9o6Z9lnXyQ8tOrnYXsnywHMwDLmPg3+ZOUyuGMmM6UUFhifa4ffsk+8qP7qxAtYO5+W54a1m5MLdpjOgYldd3Bg6h9YkJ7tDIwPtTMwiGJDSruNni76OlU7ay375FvqPvlCt0xn6lptt6WroE6TEH/i2Qsn884dgQYC+r2wBa9pnReYxBKf+Ni5gfMMXQgRUZZHh1rm6/s2I91nUgTgWRkV/L5Z2yPB8EnQN+Zzzrs6gTLbbsfGNM6Doy7lpcrZt+xslYoiAvSMUHy+r1TOw1cq80yRF7n16O72E0qFCWv7g3HdFfwfE1xiyfwI/mA8n5WVzj9Y+bqUGrNPdDv58laEaZwh+VytRMt+pP2StUmd4M6tniLmkRQzMdLEQgWvUDRUFn+J9aNDd6rnzTHtD42FyjIvxxqDVjIuwc78sDBk7RTSgNer/3buPFLaDwC+Wv/jAfjN6cm30n9hzkv/L+b834g5d1r9TVr9eBthxDM2JY8MiD1DObbhD2uLLJWhWPu3syCTQvxzEKr0xknFUQkEX59jbmLvbfJonhZ2kheXDvu72qsJoHXiefmeq4rWOKVWE9tSXMMIh2WRpLJG32peVuFYnOx9S3gVVkDKI5HidP5bkal56OqpRs52ji7iJealzf2U5NbLYq6Q0QF/Z+lzIV/B3x5soUo6H3ADtFv+NkbfW5P70t+e4lgnoNCSqWUvCgojuyurbuR4L7FtHAqhjFtkqyXJbuN5Npovs3YxCGLjJ85iZdViyVa+Twpsl7Uige3m/AcaDQXeyASBA0FzDgRNDgRvZAK2/ueQCZyGfZOGfX2pxwUa9s1p2Ddp2CNfH1iPtEDDvjkN+yYNe0DRosVEGva7wnsxWC769p2NjdfVrte1yQzFtGn4ts6bddMa+Nk4TPmeujBFYu+02QjO1X/E3i+JnKujlesYdncmdk1kHNAas3+D0N4gTiRhVTsv+3U5dOk76iKO2n7ITapVBOM5BdgEaaCVgydfIa7bd5LeDr7At2hHGQhT/Ue7fZuy7W/zVarxl/1aM7XPQeOUPm4+bBSjpJHJZDxH40QKTDYyBih8dywhW5uU3ars8/gml3xOfG/dRkb59oSNIxz/Qa7FCb43Cb6/jokAx+y01Bu10SsgAkGgE4ipNyem3iSm/vLKAzH15sTUm8TUa0rhW2CrUon9H0KeSrFjmNiRVBTdpcuNfTLw9YV4Mrwrc4zbksUW2NNYBZUDoNOJr1HyFrcEX4EglACqQMrJHaWawWfi2FCURdFfOaagAjSs5EZxReGbxI5G9W7OjatXLbMRdyT9Sq3h5q+Z9MFiAwjphIQKX4txAQj6kVWMkv8E9RMzJFC/Lm1mnJB83b2wUDo18kNVJMrcAaTpOcYuEvEJ5fpgvRnmYSQMRSnTms4+GLEcsU0Vv3jx7jA0U6V65vEIeJz4fTPx+xcijlr/S8T5LxHnv0Sc/0MijnOcaO0nnrz9h+PJnb1Gk73GG7i61f+Cq/++PheYylzkDd/J1v8DfKdzMGlyMHkrMgQWJs1ZmDRZmLyl/Nj635Sfs21pbf5K+bH1vym/f1fKz1nitPYrDxNY4jRnidP6zzxM/8/Kwzi7n9btBBYj/XuQh3FuPU1uPTUfcOrcptvXE4I8jLPrabLriY2fWmDX05xdT5NdD11JUQdzY+Qy0bk9wW0PMtYBGSF8DU8FsOb8bpr8bioGUdSHYOl2/jRN/jSVRhzPhFbgUNOcQ02TQ03NcXY8sKhpzqKmyaIG9OHwCRLwZCEeqxUQF5IfheYFvWhRyBS2AYqC5vtUaUaMY1GqlHKZD+avc7ppQ4h8wLqhT/+3H2wktY6qaJlmajwAYbXTZyY6cFNCrMhYD+dfeG8OCmOlyqxTfojKOMucNjRDSpwlDDxzmvPMafLMwQoaPiGYIc4zpw1lKmPjXrXqbEGSE3EutG9aH4AFhjklcT2CyfJ+O4lgE74d+itV2rOvB+7EOfC0oflWQu/JNoL55txxGm1qco9869sIZpuztWl0bgGmLDrvj2CyOauXRicT6HxEecoRzDVnfdJoxYE0SDTdRzDVnHdHG5pqL2DREWxszluj0TciARUVPWFui2OGD8Ih5p262LkwDAOW3euJQ8WEqnsbz8ShASyadTpAeEJiWmKgXMWGuccp1XKmOnABM9/o+9bGDg6R6hEglaNUZOqZ+44Jq44OzQzAjKlv0t/D5IAtPSU5MYlhStz7OO9KO5lPIFVPLiwMfGb1Y9yZcLRp0z6Gec2Tr7Kk8AwYIoMfctx5XDWMGyC6hsbZFKF8ChIgSlSQCgCUTqYn80f9VWw8ztNoHVdsvFUR9x+M47zL2JgFLzuNSo2Nkc4aW9oPCplkIiL1hoQbEb/IaiaTpOVl1XnQk+ic70iT7wgW4vCdmR4uirLXGxFgf3Zze2lMnWWmzpTBGCZ2b2qnAjLTYaoYWFr4IGLxz9dLrPQ03L2ArGb7MgpVIAq1uF/f9D94vSJLkXAp6Phh0hBQykBBoObr5cng059QnXdJkzsJQEPhyyvRy3u+M54w4JAsplrDd4peXvzKjI/5j15Zut7T/9Lba9fb69fliF+k252mdies7dGLZKYEa6bppU4qbbI617eJhNh3iG5O74FiEqNAx6IvS/un74vb52QbUVssYMLWIlfGj8XxOFcRs4jUNw8PMC9Wt/IeseWbCewlZIhnLHRoX4JV9e0PIKtzMmhyMgBFLXxPfRs3fTsAAPbG9nvizsds1z/1xnxX3G4sm4AaO5qr9XpNssoe/2uvyW300vqvsVd6m8FO73Tvm3Tva+yVrlam7NouUYHyKHzZojWymRjqJI4ZxfQM9mL7wq2bwPMmHAFZaH7oUOgtIutWYxdBdHHw2AomiRzPgTUh74BF0Lm02xfqn+D4T/06YOCQHaAzEw1fD2rP8jLz/MrL2k5XudrGdXded9d5SXVzu0y69C/UBT4S10eiKnqhKyg8On35Jn35+gJ1X0FQ77TfG2XWB+g3wWFtBTG902VvVBsH3ihKSLJRkw8gXtMDNGdZ5Bq0O1OxW4aVmI8HI336zMiRwS+VTuG8UQi7zxV5caqRuJx5bOsd1Dw6p3kDOABHGorzTdrEgySCb6R7CeeNceZsbr1wiyTFtKHvs1B4cp0IDgNOfLtRhvnFELStrYMIT71uAKUNfyIya2ztbRC+JHcLkjyFdAVTkJj6HQclV8CdRy+CU3B7K6aVyHVKPpegMlLAnExVzic+mLVfVO/Ydwo50YjU4GDg8mDmLdmPGr7pEMgUJdLam8GnUpWYFWI8mgOpclQlQ8lSdl/nHwgz/0gNOTXrtrQov7ALVnBGcgLQbQtAh5TvFaycTgy5SQy5vtATVnBGcgrCXQrCANoFX6Ifz6WiO5nbfmipGOH634/nUtGdLG2nyixwvA0HLvfvnytFd6q0Xaq0iPtb/zbfgWd+rDvl1i5tVtRiw69QtdaYS9QwQALRfCQD8hSzVaYBYzZxKyPZgn80dW7bLDskxZniHsfOlB5j2xwwcJdO6DCN84ZdvEnX4MMaESpi+1gJtIW6xbOVMv2NhWf5xBI6MXYavFEkb9oziBokRVDeCcx3J1OU4KwszOZS8gBYwsrzWKYrA5UyFpEKzJKzncdf3ZzpuiRvFBO+Tjne+h+luh+lvdtJ9+O57HUn/9ql8EoJBERa7gHPHEh38qVdAqXcP56zqx/PCd6dlmKnMiIgZbV9W/Nd4Oz/VFmPAumv4KYW8zlGjbuTIdW6Qb+OOvlDNRVwMvFxdAfAD8BL36XpukRQU+xfr8bTbVnuIBN7KF3gDtlTKqVpHzj1i7Yza0ga12NP6065sEu5EFCMaMpZK+Olo9reinqmDgHAO1Ul+0Fv5pvBIZ2yxQy6uaB9uChh8rjOOC3CLi1CFPGiHzrQIuxOi7BLi7DGamY9BYuYU4/rUo+DQ0T4QoJVzCmqdWmm1RXuR2o9FZutVMxCCAffNMJ1R92fhDTgGrBdZy5NG7U0TGmzTdnzFKpKVXKiD0q28GCDATuX+ZUN+gVPam5mi9SQMtO/MLfgsvNbWQTORERy58GWNWXSr/hhX++k1Z3SWpfSGup/4c/BVvSYrr0cZjgdaZg1LJ3MmKMOCEXQKv5WZZGa7ntgx5+X47pEYbx72kl3QmZdQmawiAl71//NvXOrHpWfcNJ65m3VRgwdbBIlYJ4/gJV9cdrMSzcKFgmKz1CcSPnVfNMAWhBykAkltsh2HCyKQEaNKxpqhAkgAV76DrtF1qSpYpcptZ4uUyA3dy6sN2+pZEZRtOhtVOwWyBVxZ+A3Recd/VumaqjS7zvpll1Tpoq9kropU4n2LWJdM8kw0BdlMw+7YqZ0V1c+C8lJWSTlagDNLpFLwhk3Bg67vDBwYKkp22WRRWEWyxySsBLIEAhzW/YvR7YgAx0rciHCPR6m5+WMBBogta8yRXHkDJO2SRJyZhQH5ZW06Iq8V6AoJeMkpdGr/OwglNOIisDOs+TWI0JgIT5xyC6wnjZIae14BYIk1IHRvyZJXX/aeELpzx/LbU4Sw2pHHNKytUrUPjtDaEmlJDOETsohL+LKuVt18mgKRbBUT8AyeVlIX64kws8iCy32jIL8sZEEhSddct9rOi+R8jgv+3U57FScGocr+4HpwLvuZThhqk6dG5TWnqWofspSkR1EiYhuaDSo/9QtFSEpKEN8zNltREOBhPDAOk2HoliGFqSWakRXw4MSAyXFoa1HsQi4FR6UegbEIm5xKS4ig5IMVRKM0pCQSgVyXBsPuj1igYzMXapMNIs9OBckPYVUkGYKiaEUjED3yqFO1RMvamq+gFJC4+ggIKYIHjk+xdR11oklldGUGhmXQ+SwEDuIDy18RzhxaDojCSSc6aGs9EHL+Zp2a6W/GTXVpNmGYSpqMjMjh+lVmKAVxkzp+18QxIuMtgysoGYh8NJhJ4lD0tFr62oUvYjyacJDAyqxdUj62M8dx7TeAbCr1y9BS+zuY+zemdJFhvB2s34uvmu84XQI80tgYN/fMhm1WjlWvvBuzgeSM2Oaff8BUbN9q7/px2ENSK+RNaBD2jn5GNZprvP2wfnsmBFxsTamJrkqUr5Tui4lZAGMcirX3Xpdtuuy62v6CeliTQlNIRQLV6esrBTOlnM7IJnK4Txs5h08qC1LkppWH8kCyXT5TLUPjh1csErajns46KmKgnQrJwTQ07QPxPvY/OdmSKyF2gl9QbDQM/EGwXYZhGDONlPhGZ/GDWYgjGiHiRU10mCQH+188KD4bqpnzpeXnaJMdDtEejbxwIxkrH+XLuqW5FaL4T1qzYepap4Knjzeg+s4s5V8sflKXjifSvOSWccYu8SKmowzEDhJYYEx4Bbw/CMvzPza5FLfqiQcUbOSaS+uTglPSILsmzimZf+d3TlBMlIQ+gi/c93fmYsby4R1i8a389uAGwCVFso+2XcYly3saHMLxHMZ1ncAYpbfQbJR6Pi+arQVZnOPtKS605Lq1FjqOY7w2cigL1v0lOdOqoyZb1Fo5eEbirdygsP60amFtfLWwjI5/HTJ4RO61/nuxxmuyoTpEa46MahOVRmIioYd77eOs7gIq0smTCq9DOl0ah4ImeyL66sEX2BRWDb39afXClq59BSaDLXHmHGHApO+weAPYuxA+qY76Zsu6Ru4poejjlH6FCA4WcUK0scIyfsXO19jSZEIHhDi5nd4UHN3UjRdYjMvMXd+Zke7E5DplIN5y98E+jHd6cd0qqRAAC76sdmo5Q0BQqYzdxeWtTAa4EGKUAjCFdlYGaKjhcEeOBIK8KBfAVa20ShbCbmT3Qm3dMqw4F9EB75At6U73ZZOzQgIzURDowSJCycy0SnLQJWe6CU90VLd6Th06Ti0GEDWS5ArdKIGnTx6qE48Y9wSZAod7b6TYA69sOjfB5PDEdJ70eSI8Wu9PCsB3bGxe1k/UKY9oGN3R8fuomPHKNNeg7HuKMtdlOUWo956QFnujrLca/6BU+0BZbk7ynInMfhtwtZgLDomcReTuMWos16Dwegovr22H0DXXoPB6Ji6vfYfQNdeg/Ho2LNd7NkWI996wJ7tjj3byYV9S54H5NnuyLOdXFhoCZUFUph7QDAeHXm2izzbYoBZD9iz3bFnu7FnX+ZECwak4012UrJe5nULhqOjcHVRuN4GdAvGo6M19VZ/jaYWjEfH7Omt/RpNLRiPjnXTxbpBmB7+EsF4dKyb3sbPXyIYj46C0tv8+SaDAel4Er2tn28yGJGOKNFFlHh7kz0YkY5N0LstkXEQFLAJumMTdLEJQAcNYBE9YBN0xyboJAeAsRk+IBiSjk3QxSZoMYpRrczt0zuyECRzlpQuADpTDDzy4yRlSHQwqIlZ911wY1p0BFCHwi6Iy8ac77KSUWvZWGpgroOYZCj8tlHyCQQkkx0E2ibsh5sZIjU0SMkGoUvvf6ppZ4fmMGgKVXIICEMmURW0QqQIuHEJaSsiV3wv3OwSMSLUjVYbMSpALJ1wNb0K5hASP49x+bA6GlI0gsTz9aAnkGH0HMzu+BWdbAnkFaNIUI2muHHphvCtJNY8JXHTrepEfZ60zU6RU1Fgi5SKkvT8xSQfosPBwwG3O/5GF0MD2YVw4CwTCvkzZq8fbhWrbUGIxzKqWA6aHEvOAeQ74dYR0TMAGHiiitR4VoSVv6EQUzNjFP10hQmJYXUgTSYcDfCDUWljsm4x6mdNVZBdpxyNo4vGIbfiZ6fSv6ZTuy+yvGUR23fLrXfihrQWLzYBN6Q7bkgXN6TFMM5+cUOyJYSL9BOvYxarbY3CwaygoUJV9lmNmVcqA05K1UlE8FKwgVp4NDAdZaSLMtJiFGUPKCPdUUb6MHHtEEZzNjZqkut7giLJCYbEzQ0cxz9jMgfeGgZWa9AUeNKBumOe9CGKbmzB0gPqSXfUkz4UvLY48Au4J91xTzqpJG+xZ8A96Y570skkyTXkkveAetId9aSLegJIQnCYmkGk4OgVXQSK2cKldJ7m4QcJ+c0K7YmQXeAYlB6iPop+w6nLCc0g/9FuyhF4z/rSk1DaZzDjHFK/T5txKxwCMwgxHES9C6KO0ms0BGa1nQSpXkrCITNcTDRNmxyy+EZy6IKIVKX3C1ONidEGXSupqCmCHn01GrEuw2+6DrneiRaf4Kc8NeTUKF3lrYYypNiqovK1w90KzXnYOgN5VXHkrzWFKBxR6I8jhUuKw693w6+/oFpmMBMd7LwLdt5iueo+g5nowOFd4HCAFsIfMpiKDhzeDRz+gqyZwVx0aOguNDSYHtG3CNDQ3aGhu9DQLZa07gEaujs0dF/axnp8hArg0N3BofuSOUjsIdBXMKkcmLkvm1Tx4WMFW4wDIvelsHvE0zKAIncHRe5LAXOMme0rGJMOdduFum0j3s4D1G13qNtOEC34ZIE7sRqZ6UeZgNyaZshOBJ6TpAlqWhBBvpYp34lGcCqjUVBukTJAK4o1bAYjekgN6DSsNr6nbuwL3tteoLVrbVEOao1QWDwbMQLlsCz/3n3g4CLJFYg9HMtWxMX1juh5yONLu63QxRdQ7sbT2fHo6t9JNoQjRkQfdFWtTTSYQigEmOSECwGzis7o5AF2JXYduRPpXoIQQJcyMMpmz4PIcJjkIUwycCJhb54TdjhM8jg0YUc4WUaASh4OlTwOY+2Hk2UEsOThYMlDsGTA3sMnPCfscBjaYRjaGU6WEYBohwPRjkMTdoYn7RGgaIdD0Q6haNsMB/EIULTDoWiHgLIMhqInPDeR4UCvQ47kwCyGT3huIsPhVUey7Hi4Bah1n20Zg38Bj00saFGcZ4qLtW5SOU1xdpIjjVp1QOKJFqwLCVE2Mvnbckogw8FYh2CsLYaQjgDGOhyMdQjG2mII6QhgrMPBWIdgrPhC4ROCUe9grEMw1rbiEZeCUe/Qn0P4Tpi7hE8IRr1DaA5hMFssozxSMOodinIYUnLFIy4Fo97BGodgjVCLC58QjHqHORxpvVd0RgoGvcPBDdk+xsegkZ+B03DYsSFTw/gYNHIwIB3WZRCvwZ1zfstw/z4Yjg7fMfKvo8jIwXB0aIlhaIkVbyX5PIoU0xU7ajcftt62zfz4iNhRthFbM2cmVOPFUd5kEdJCpEyXBVVLJrpNhOSSmgdIJSJ4gpSytv8aIhEBQgGkITTnODYdEs+T5R6y6KQPCF4m913KoRHWY94xalVMgyNH7dvHU9Ad5uEIZOJhf21trE4gVEcmNwv/k7alQzeNT3yEbIpxMJNNMTiXdGsQXjXzckpHljwWOgXrfdB7y6QvzZkGUMkq3I89oWVZtH1Sk1iTh5QMBykZsieD/Vxw1FBr2y+IQJ1GQxGA4Y3zMwUJgorKLBuVOoTBS+bABqiZoenxIEqBI+UCekP9Sgoub4ZNEkxe/jcifcudpUpUj6bRX6D8aB72PcDm6Ue5Lqsu/Vd3C545lMX4jpGDBc8hRIYQIv2Il0y2ZmkBgsq00b6LR3VDp00zO0I3pgZMNy4htexOTT5pqsNvlrlHGmtf+nt6pQh3iyx1QV+QbS9480c3wTwUG8Cm3UxDYLwpyYYHr7aM5fBXr49ZwV71cxQz/D4Oe1DqSjkM/jTjupzX5Tovk2Ae1b9ZtxGYaVQOARZq/f8JoyZrqSF01A+4mv/WbvMyGyksHtG3XneUWgROuyBpwkCl5MBpnE5ltX8tTm04CNEgIgjrX5BXV6M8A4ZZ/uGrbPFdApon4JHjbvkHhp5s6tMyZu4yjd1uFn+QDZwS6j1V9baJ79pA6tGb0QbomsKPPV2MAL+VwPPoWzkXkH5tP1iRtP1QY1oGRHQrZHfSx1xTj24oZxwjteeQVda1w2XbaXhPNkL0BM3Wp0o/n0zFOTEeCk2GEo38TN8PMpJyIkWOP8tjdNnuQ6ku6jszJuXOynvUwUE5Una50AnXRqQrchQaNifuseD3U+MZ/1ZGodLvSPm87ILYFo0tCmnbhoVHmodQpVO09j5dcgetZqYntV/zBeKeWubuQOrsKQHuXU/Ac3sq193zCT216243NHAiPWTfnUY2TJ2mqcNz9oYDs41iJaL4fFGCcM5hzYZMwvDLhE8IAjoHNhvEjr0EhAHWbDis2SB07EXTfQRYs+GwZkNYM0zoKEgIsGbDYc2GDHSo4By9BBnoSHdFNUi5SmG1mfNewyVbCbo12PEK2RCV8cKkGuJ46IoMh1sbsot5qV+rNZvYOznKm50E5g/1cw7baSCrOxTaccckinwrdaKUZqz8akaf8OqFU7coOrZ+gF19CDy+mTBH2aU4REJygYcJuenHIxs6Nk1oFHnEr88ayooNCUnnb+UEJaGIjBJs/VnpfkCITSSgE3gLlYPUmTyzy3Fdzuty6dK/Ybd5C9kXFsNGgOsbDtc3hOuDLmk4WIJDnMP1DcL0BiRzgw0owPUNh+sbwvX1WOBvBLi+4XB9Q7i+HuMzR4DrGw7XNwjTe1ETGQGubzhc3xCur8cIyxHg+obD9Q3h+noMbxwBrm84XN8Qrg8a/4Eqn1oJ+KXNHbVpCKjfWSIIczSZUjNfhD8btD9jCYvGQopCwRpTFokfpgwUDHKDstFw2MEh7GCPcXfWelJRs9xDaVsop9D6KdOY6NyW6xcuy8rrwgQuZVIwyVlHCyWGcEnhSY9WHg6XOOTq0Ws8HwJg4nDAxEGc4YjRxiMAJg4HTBwCJvYY/zQCYOJwwMQhYCKPyNETghnlgImj/RKVHQE0cTho4mg/RGVHgEwcDpk4hEwEeCmogI4AmTgcMnFsZGKI6RsBMnE4ZOIgzvAF7jsCYOJwwMRBmOFbOBDgEofDJY6NSwxRhSPAJQ6HSxwblxiiCkeASxwOlzi6Dch4bQtwicPhEoepHMd8eWv9tzHSh8M8DlNQjvny1vpv7J2bSIRHxnx5tVHyAECF9gXDJbVNYwGgBsSPJoaL/xw33wS7fKG5qxXWKwwDG+2opK6A0iOykv7xbjIKNJlf3nHbTJVFMy9qzWHBZ+2Qfs1cyilsU6hmXHhIPmbkTTUcjnL0X/M40IYeDgI5iESMFcxHoAw9HHJxdNtW4s09UIYeDlk4CPLDDAq/wrqLEDBzgMpO2RJ8Jwno5k5G7TAAI2mJrOwOzckADGlMARIOQrFaPM530K0Sw2AQkZ7OGMEi4RCCg9C8F0qAGossLKrOBpUuu+gneLRKg8IBoTIbhgN9M+b6slTTlBzIsS8hGmSWrggdaOmKSyEMMYPq1B/4rrsVRChCxPsBBESteeuKXSI8VoubzBniW+B81W0pqXMrJXayLglqPKvmBAl+j+mP1A6cOMavXXgEu7DDDQ6Tmo41ikaAGxwONzgEDXwrkQRi08NB/oYgfz0G1Y4A8jcc5G8QwLdinb0RIP6GQ/yNYQSq+PcNpq9D/A2pTfcYZzoCyN9wkL8hyB9pok/U4Qgwf8Nh/gaBeMhoRz/EDKJCh9wb0hfuMdR1BNC94aB7g0C8Rh2fZywSIPeGQ+4NIfd6rFQ6ZjAeHbBuCFi3QnT0mMFwdLi3MX/IHY4A9jYc7G0I9tZjLO4IYG/Dwd4GQWy9xVt1gHobDvU2iGEbJU5+z7UrUWkvV3N9JpfNZWWSgVoeEfUUHg51nGQP2++KTrOa6FKj3RygR/xbKTrxebhHji7xz+lgMGBeTiQbUxGMuXmE9qnzYEj1JrwRXvpv76aS6Ze+nG4CxN5wiL1hiL14XQ0Ae8MB9sb6RUUcAWBvOMDeWD+oiCPA6w2H1xvrF/VrBHi94fB6Y/2ifo0ArzccXm8sW9rjZECA1xsOrzeIvnvL3ARwveHgeoOguBe+0ghEModD0Q1C1WJ5yRFIZA4HbZsEl8XyqzMQyJwOjDYJLXtZj2aARZsOizYPW9ZDCMIMsGjTYdHm8SN9NgMo2nRQtHnUH+/gORKnA6JNAdF6C+F0MwCiTQdEmwKi9RgSPgMg2nRAtHn8IiHOAIg2HRBtbiBatKrMAIc2HQ5tHuvHqjIDHNp0OLSZfigSzBSMRgcSm6Z1GK8qMwCJTQcSmwKJQeU4+iUCkNh0ILFpWofxujQDkNh0ILEpkFiPFa7Vqkp4Z+EiS5XekC/Uq6KAa9r+t4nC+iYuPs0lgAwnijUdeaMPTt0uKKwnyhthVCeKpvJqMiOKR0n0FQlZ1vBqTgbjgeSvxHTQQeRQ5dmZu1wH+qcmuQ5KcRMVER6RoIKGoGKrr8mlDN6xfbGs0geJX4VYI1l7Cq1M7MXBXVqWhfTALaystLwtbum4xtSsPFQhR2V/QGcTXXY6SxRWTyjCxIJoZ9ETQzN1eR3oD6gWy2xvn9cTlu76n9ktG8TlTZHSfMJcjfV0xjsNyBHwNAIdFJAALlTGicnMPH7rm+ZTLSNLvcVnx6dDBk4hA5nc5inRdakrR9O2x2GWRiIvC/I9B8FNZWx+GDFh+72vszf1OP+gpusy69L30S10wh72GKZvrSdoPUm2HnV7Iq7JjGEWovR0J9OcFBqK/RFfsyjneQBEvo4TRD5OPDk0awOc+3RQxymoY49lrGcAdZwO6jgFdeyxjPUMsI7TYR2nNP9QTYz6EIAdpwM7TonhzTBmt0ZDwJ/l2hsE/gS+z7n9pm4QeAh2yVgi9dECCPx0yMkplTAIsIXfJ1ilHXZyCjsJY5PoneYSUkIXjwB13NOvVOVFOVojh6lPQPO/FI/s0hHGUtrnERWBpsNkTmEyewyMnzmIRxzUbxrULwbGzxzEIw4xNyXj1Fa4NAWAuekAc5MwrxYj7magqDQdLmwKF9ZjaP7MwaxxGKuZ1695FwgkTYdumuXnrAkUkqYDlczya9YEmJLpMCWz/BzoAaZkOkzJJEbk7acMQCXTgUomMSJvP2UAKpkOVDINVBJzJNR6Mua1JCPLquIrHHYJMf4OJEb7su1CCzbkoSAnuln0mzs/uUmyrFz2DuM76Ua8cCsZab4ncWoGMknTwU2mACWhq90MZJKmA1NMgiNeXO1mgKaYDk0xiY0A7jLqQDDcHZZiSiOpx0yUGYAppgNTTANTxEyUGYAppgNTzJq38RCOk+4EEGAppsNSzKp1PaayqHWJHAYbtmp6Hcw1MYYdPZs13WKWm/TwQ2ORcVhBnONNEqdDZExDZMz4VBsgMqZDZExDZMz4UBkgMqZDZExDZMSMmRkoLU2HlpiGlogZM2o9CwqkAk5ylbdHU017bxTQHqwXYkDGaSQDNNWtbtmlFPLYIx1QYhpQIqbRzAAoMR1QYlbtDjGNZgZIiemQEtOQEjGNxlp3HetSBKHrQD3STRHkWssuV/GLLw2Ys3QZErBhqpolyJkE+nfTgTGmgTFA8HjWDmYAxpgOjDEFxugrHocBGGM6MMYUGAMmOOETgi3IoTGm0Bg4cka7YIDGmA6NMYmtaDVKu88AizEdFmO2/iu9EoAxpgNjzDZ+pFcCMMZ0YIwpMMY44skYgDGmA2PM9jNBE4AxpgNjTEIrKL7y1JycARZjOizGNLTFEYemgUbUdHiJuR2n4xRPoBE1HaZh9p8JmkAkajq0whRaAfM0/BbBeHSAhClAwohF2GdgOT0dqmCaOhNqUcGcCGAF08EKppSVIIoSJT4DYMF0wILZbUjG+30ALJgOWDBNsiis288ejEhX+J9W+B/hiAwK/9MV/uf4UUyZgcHzdOX3aeX3AxnwY7iVgY31ZJ9spn0WcR50gIM6Qn3QSr7SfEnbALnpREJMEt65mRCeyzPpdzFbR0lUYn25qYK74vvrhr+q8rFA0wyq8tNV5aeq8rGY0gyK8tMV5ecwsGmES5tBTX66mvy0mnxI3ZxBSX66kvwcVgSNR00w8l1JfqokP0JzMzVSTKHQhGbjWvRbk4J0CTDVZTGCFI4hpH6FASmT+MYUGwTxLYM20hHu/q7uP1X3HzkSu5lB2X+6sv80pZ8U7zlB2X+6sv9kFZ/nsWeBawZl/+nK/lNlf5zlwi4E670r+08p9owUr9ZB3X+6uv9U3X+keLUO6v7T1f2nNHNGioNFtp7JpSwXwJTu3qakOgInVPh3kEI2cBRxx4N4uwxvBDAqDHc8qC89h89EO1DBJEaAsm/k+rrOdRPZY738KW13y00z2wrhn0sCiBwFA3bnRD4n9cRPcTvI8QX8/+lwC1O4hRHzc2aAW5gOtzAl1zNifs4MgAvTARem3FoptvjN/nQaqPVMV/ufqv3nl4QQW7ecYSIY66ARHrVV8j23KjMfejHwaTTRSyNT6InuZmDgPN3BpsMSTGEJRqyXr1Z5Xo1PoX10/mxxqiK/FlY8ODyS/e7Mt2eSegjeL8eVe4c0vO1XKPbsy6Gsuu+sWwuWvBRrOE4D2MJ0sIUpnSFoP4bfFq3V8rXnwVbf7pQdQ9KXquuAwlXazAAemo6V97TTVwdmDn4O0XnWoSEmsQ01xqeqcYuOaljkuuOFWctNS1NDgAmKTxoFCWecJBPANoFx3XSYiilMBZ1do44QKEvptf6pYhqnez2F8xvRCuimClZulRWSHOGXOE8poXTQ7k/utqWE8YtDbUyhNkZMVZnm+AqK6fyQWApmMD1mjGlK5UYxsbOZqacigik1daYRNVUILeOzhtVUIV8AR0riOOlk0+h9JJkC+fJwbZwURJiw2SEVFNXPSeOVJcNqePVMctySfks+BeOoNC4AAHqzJEpWGm1r6FUz7MGVXE+EFnCWVvfguwxWaqIrcJJgJT+iwDae/xZeMZ214QNZHd7bnsEoAH/6yPZ9hviWCaY2fBVzm9pws5GTUG6fwW8Lb6jJWi8+dvZk/2Kpe+jaQeUI2iumo9oXoduJep0y2fDcxAr7SHNOMUflygg2NtZNydslq8Ww7Gxj6Pw0lni/WJ0GLZusnZ6e6MjgJ7BdXkAMrKjgoJvXQ2kiqpv1vGrn1fk5dZxX87w6P6XdBsrVdy0zbD8/pZ2f0s5P4W/bHhVcB0iayxhMI57AwS7pEElz/YKBBIik6RBJkwijF0jT3LJeDo0sOaCjf+YyH9BrsR2nl/uQTCBePayS2hdqYyomt8eq8XfnXcfxipNS26mIO1nfzv0zuwmKXu7XV3Z4yOBv1d2X5vWUl4NKLel2gZ9f13eO4jrxjIWXw0otYaVGDDRaAVZqOazUkm7XiIFG1mr6cDxvIu/4FIobGwmOlYOSajy7YB29IoCrfp5Ast9bvWw1R/IdLa6jDLmPFdZjrBUL0IeLKQQvuBxVrvmAfdLVTJbGic5oVcT/KnUBguul6mJqNaVKpOYAbV6e4flDhzXg4GWwdpj0ydwWboTCHMU+28zcVjINgoWtI2lbqKZBANdALFAHJagTjdBIaaY3GP2JuZFwhV+7H5IoAKiVKzB2ikwfMpQGya3gCpz5T7Egar9pZm50IPdL2QJ9hJmzrcyd56AZDc6q+kJcYOlNW2iE1qjslU0tQaZsxPHIYm3KGPWQGKm9zMHz7PGlyZAM0PBvJxFHiGEWRTcQGaZq36MJkFNN0wDfu9MLDibQ2o4AzNB6jY1RKyUep60HV4tuc3RAp1u7PHYP/lq6y5eKkDPB7VE/bzL3PZ5sMj9TGKJlH5qSeSFSMpsdoJErvb8OUlTpssZtJ2sgHdy9jt0HbWTCLksyiXdn2s8t8l7DB8lajX/QxBXHp1F3hLF4okzLvmzXZbcXl4b2St2d1+U29k6DIhG6S3Z78a7VywEdl4COkB0Z7XscfvV4Zm6WAzouAR3xDsIn9M3JR9BGIBcmNNBlJjQLlZBlCkwUHKJFHj3DCTMiog3ZNCHaIM+U6LZ2tGnYtsQoi/esMpWYiWsk0yOs5K+HMG+IVH8k+obrIcKd4fMXXTrhCcox1b4HfffoNCxNGnjI8cjEgZS/0H1L6g9/niSpH4yLTDWZJgwXvaxwl7aMZmM3ROVH6CL9Y3xfeAui2OZfe3evXWEB9CWj1/4MC5ZDhy6hQ0csOrkCeOhy8NAleOiIRSeXOXdzYpvSzxymv0A3t63WM4q9BiZBAcIiS5ySLMJ9ZRXXMpda+kvBbyzBfLV8K4WlqrQQMCSORlH0puCx2IYlm3cenahcpStsXfSOH0zRPMrAywFal4QVRwx9WGkL5MjgjKhM+xIlIfm7zMgMYWmlrerge1hY8WivwAPGoH8WBLfYMTM/GwxksoqORAVyqps/g0sJLYekXULSjriAvQIk7XJI2iUk7YgL2CtA0i6HpF1C0o64gK3Wbv52pGzMNM/XePriUS2DUmUtm72czIFxohC0hMSQRvULHBJXM6c5ne4TZ98S5c2vkA66uwTdHbFC5No25ZmoOJaC8QMy+qV8+dq8Esprkc5yEl40pvEdL9LKOC3FaeXKwTnlVkDHcbwQMWUbhauOa8hXHZKamZzbkNZd+pA/0jHLAViXWY3HNfQVSFEuBzhdZgce19BXIEW5HBx0CfA5YinKFUhRLofPXMJnjliKUq3PuUkX6S+QC5hQ9AXHe4cjRNUb3rPwNjfXNOPCNNbazoqT9uB2ma7LrBnrO+8WVUFDZ1yJVKsFwHMHwGaXumirLc+PU34OcUCV53UlsFuLKNQ3Ck2mV7bzs0YjllCJMmJxlUhdWzYY4dlL4Y4sk8lM62gs7TCEKd9BApUWXZ43CNiePCFz/cUKxnFJs1O8lMp5y8u2ez7JXz3whietAu1yXpfLlPLTTIfu+tfq1m3hZWdc91ArXTCQseBKw42bYiaMGylmgkAZL0x/ZrolrW/dEirqUbaEScPJDL/Xy1sOh7skOjrjcsg6LavjHaXw5I0l8Pfe8i/ZURxmdwmzO+MyzAowu8thdpcwuzMuw6hVtZPG0Sg/kM5vKB4/v4HZRaDbXb/MxGv49iP7z3eLu5C5M8Vrjbxlz8+/PnVqfWd+6X/2+W69Fa53xt7IK8D1LofrXVLCxB4SPiFYbx2wd0kJc8aewmqlfGjaGXT0VkQSSKFb1VPLTR/S44OiO/UHMdHbJ1N8Eo2SzkIRrMlZGSRO1p1QIV2K3JSFz2Lfkx6CXV17JD4cWrLfxpRlMo2CxeJVRQpxMu6GOFaalHHs2Qd1Dpq8BE1GiiN8BZSsZOEOuzH61r4r0aO9fNY3c7Lnqkv/UW55F4Z55nh/DDDMy2GYlzDMM4cA4hVgmJfDMC8J480cj7oAxLwciHkJxDzjqssKQMzLgZhX0cyP/XWXebSaKtrpSHJz32LAV01IVULmF2nmcimRrRSr7Yn2z3XrajJV4Tvploei5SFWM1sBUno5pPQSUnrGYmQrkN9bDsa8BGOesRiZWrcFGBDTsvY6S0oIei2p2cncQeZ7YILgLFYIMEnz8R7cEiHdvRmrkamVenvJbMhooMK8BX6CwRmfwbUoLFcgRyRdvEQ/COhQaP2AAr0iEpK8i5SW0ydTwply0tLeg2EFFZWxjYEXhAD8o7z+QrniyFvefpAJRilpxSOQKknz9CpOk5s38kJIOIBjjkipDMbyiEzKvC6XFfLT1JGDd2u6LvP1B+W6rNb9NHlQtb/t1+VQoOR/CLdQSZ5v1pd5F5zZHaR8SaAP1ajwCWvPO5xDniinZCecfqsMXvnhMXaC+V4PpLpzZ8ruKg0WiZV4JZTlEOxLCPYZa3WsAMG+HIJ9CcE+Y6WMFSDYl0OwLwLSGZM+gaIrQLAvh2BfpgY4I3DTCtQAl8OeLyLJEZSlb8nJ/ftgFXLI8yXkORLBAUhhBcjz5ZDnizjyOiKA2Apw58vhzpdw5xguQQ1pBQ6/ywHElwDiE4jf6AnB0HcA8SWA+GwtfkKw9TqA+CIWm2maJ8x0BUp6y4G3l8DbqPpHe3cA3l4OvL0E3iaEvH8dO38F2O3lsNurSZH203CAcP88GIoOuL0Iw0bJPxrLAW57Odz2apZimOFYCpDbyyG3l1T0YKD2hGeuALi9HHB7Cbh9xASoFSC3l0NuLyG3ecB7ogVXgNxeDrm9hNyGAnJADloBcns55PYiEJviUiiXuZEQILeXQ24vU9E7UBfOTpx4BcDt5YDbS8BtoL+i0RwAt5cDbi8Bt7EXR1MyAG4vB9xeAm4DvXPAx8A9IBiPDre9uq2NcTAc4LaXw20v+eaiuDrg+uQeEIxHB9teBGHjPBPg31eA2l4Otb26rY1xWMBWlnNBLed5FQURJtkRLa8NSJXhAxINYwfIVqGnTGtKYvogy8SD1/IqfcuBwVdfv5b9AA2+HBp8jePXsh/AwZeDg6+Rfi37AR58OTz4GrbmxjGTWs088aI9zsMojplJQogQFCEM5q6kI3+0eL4l+BNoGhO/FT2N8otpHRHTfzkQ+BIIfL7gANi600hU9sv1yqgrhEM9FkZqShPBzVK5TbnDIVpFt4FlzNZtGEUsppaLujp2Nml2S3z6XrvpK+T5jIUx1HrB9pj1Egz2xO0xjBfMiraiQ84v9bvalhdH7Ln4bZATSxXr/lPMYTlM+xKmHVrBYdcaC5uZzC+VptpHGVcUOPOXCX8efcaZ8zcuXUbxiWAyWuEpy4p/B93sTPhvp8QiAIGLp1rgEBZTEBTdSDx8IPOYOM4K5fyUIJFnaCFMLhUKg/MSshuVBjuJgEvhCCd9JYb3W14OoL8E0AfsO3wbwSrnEPpLCP0EKYogdAgg+stB9Jep5uHQGuzbgWzecvD5Jfj8ixzGCvDzy+Hnl/DzM/bWXAF+fjn8/Jpaj2JvzRUA6JcD0C853tJb/LlfBPj55fDzi2h4TvUAthTA55eDz69p0zZeEQP4/HLw+SX4/IxFP1agm7ccxH3JL3aOEHm9AuG85QDoSwD0tMJgOMCfL4c/X8Kfz9jccwX48+Xw52uqSF4QgzUXOgTw8+Xg50vw8xkLiaxAem45uPgSXHzGpp0r0J5bDsO9pD03Yy/NFYC4lwNxL4G4gdEOnxAMSAe3XhKfm7H4xwrE55YDSq9lAzKelgJKEyJQ2k1mJvIq1U5EmDSrtQh/roQImAD1C5ry6vX0c6ZUDutuk/oiDxGa5UDTS6DpGft1rkDqbjlk6RKydMayJCtAli6HLF1Cls5YlmQF0NLloKVLlrFQkwmfEMwABwNNh6xcZ4zIsOa/z7jf3A/BmF4t9Kyy1sczkn+G5kGstmDNj4dk/xBiIKiCcVY1b894ToX7zf0MTYZYtMGat80W5caaQJbAfgulfYErgeZDYnYZU4gaCkTWAzxOwGZfMnFCsEt8HqTI5R3HqJAAxkqlbUsJJ4EwD/kEmlGTLJsAGGfGGDATma8AoynzFdavl3CY26jp0IQDzhHhK0GDzWCOPMYQ5kiUqIDrkKgWrh4pzC7/QdAaZPf2IXaCRe9GoyGWHRfx+iA5E1250kdo84LzEw2LCnGK2EcQHROHyqthVwQVAxbYdvh2EDffhPrDmeowEydDG1IRtVhrpW0SPo7AD90Eg0iv25TNcFOIQT7HkG2AlU29Sl2u83Id1yV6v1D/nTS0srvluqzXZdPlYyhWPxS1qq6wWGXNj4c0/xAtdTGew5o3xlDuZHU7jxkinRZSDkmIM6ygEVJ7Y4CebpBCheqtJPMFQnky9ypI4XYT2xaWAH2K8wGoEJgeWcPqRCNWQ/bIkFJwRAhqER9rlQsgFDligGtdRKLiCCCAUTPEhVqNW0EsYqboHpkImeUwABzp4AUTQfC10rEBiJUKd0QoNlVQWJZYTOwf7fFjdP9jUCCV9JNHFG+tjWJ5QBib3NalUT7kK/ypJJCBfoikBZTHP/RI1xX9YsqQ3RiNEh7dGr5blF1Fafbp7mGtW84MvYKhwelWBdnASsg56kqy7kYHwS1I5mNlZN3lAYL27D9dIV0CFd5wL1lbiAyFqZOjUCislyjIn8gBzbQhxRvpAhKj6IxaESCTT+aXPfneEWEVVyzTYc1XkZWvpZK/wyp8iR18tHT1z6xbpSlJV4fwIy6R+7JElGb73D/9TOrnyw6eNgQmH437FOD4BlQf0sdkPZCsI2xhw9gA8r3D39AXsCRjidUNR23mg7qmbWWliBYAPo+cacdEAfNgIkSbAItasg2shPUBpb63uYMaiduiULAsgRLsKheB2ffOh8ogyWyYgZn70tH35oZURWnKKizTvQZ/VF6xLGjzW+cPyFPHF1rs7CS2fgHdkZtt9ho6/wjLfyeSfzBwU45iEd6CjbUS7HUQKzvl8Vc7QdL4gEUVJT1PGx9mOl8K/y5xV7N3ox0Pf5/Oj05ljjMMEIOKVVqzUq3C0dgfLILC8K/WIQtaXG3KXAIjcN+kLGSh7dSxb8oqMRO+lc+b5byqttIn2Sbq5vk5/E4+MWLD8c/wZdy3YgiONbOYDM1zLnqXoNLFBxdqi7kqolboDpNOSSWrmPIHAfY14KDaR/3pGg9WK6ZY72autcs8+7DuZDrCN5QL+ySArHKciESlA7PWInR1wA7y0RMfkyYpMocsNmvdQVwmuwX198w5MMT2RHjFqV21iKPJxHChHC+fT2TryM5Z2UBKiE5JBOlJYSp2X05HQCbIqSlraG7TkPIQb5RTGzN6cUU8hDMX3yZno/4AXSzX0UpghdioFt9C+AFgYKxTn8xOjNqMxwOggHg8FaCDxfloLonp24CLzHmHsJl8mnKyfAD6K+LxyG/wkD9LHeTnLHJOQUKCWD5pMiabf1AluPA9AI6F+abwu7Avk2ygSQJWptqXelBFrexC34uwWbkiwGcP54iDJwMUMfQvtERVsjCK9arxMyiGRT/EA8f1ur8bYF37F9zvoDOeR+FBKxZUr4YWcwSDxb4aoSREKvQ17cOGFlqUMEq21kFG1jKYNZauvdj1/Blrv6lJLisG6+RDWp/EAms0QD0YO0T5LK2JBMWS8qTBIm1lMmH1s4IPlLR5ME/LgbUUos3zkl+aZLGa958CkKLfkVPN7hJw/F2NWJlyXdbrstmpJi1xjXQ5rst5/S07hiBwMX7VH8gTXpf5uizXZb0ur08r16eV69O4EdvlOi/r9Wn1+rR6fVq9Pq3apz3WGX/gEIIdoovxitdsMT4wJ1nu0uRHcSBxfku75ZKtnISdoiwDjJ/kKG9VG5C7dsRTQwk3+9Q/vezq5duW8cze3G/uhww9JEzCWrO8h8eHx4xBEmUSWI6y4jOJIYmfm/UIWDZxblb8DsRpiSuXjEcJgnqRZy+Zici/YrlTdGZ64YP4vPxFsh9C5YlRU+EApWwO2ewY3PSP5kfwjIzxrxUGjHutITSWZaCAfzAJeM6gbfJxY1FPL/GEvxizgRaUDmFWSePjUOUqINnwJXJf2l8TZ/3CchIP3PaVUVoqXAdTIclxUSOaVK5MY6fV7a2SAoyYeWrK2keslPbfLlLEKmp7OtbZZb7+oFyXdXddXPvBq65/9RgW/iQk9sOKC9rW/HiIP8OIhbDiirI1Px7izx/C3K+4bmrN/iHZHw4Ej19xXdOaZeF+3MRsbqqzp3BNH9Xw4/PEh16VbLHBTI5psXyJ/SohlxNO6uzjQMHhV1wwtObrJMzRxWQUkn1fWgOLAa9QC5R5lYkLZVagjKniJ8IxUwYC1DGMBLOPBIW0X3H9zpofD/FBnODyKy5+7WazDiCDFUVv7uC0WGcecWrpQQ1OOwTEWMSdzcra0H1eucYpl+Z8dK1TnLRclRgTJ0UH3WzhW5WDW9q/J60ULHtDl2dRveHDzrl7IKSqG7pK+1riYivJKokFsn2vaTHEOOIJR+pTgqpa+qZVaczj1CB79kzK8GJ65hiSSMeahX4S8kk1MVpC84prsLGM6/4eWhrQvmhJQM/qRdqvLpm5BEQ2rZGuu/m65NqCOGWdn7Wshv4432S/pYqksOLqjDUzZzbMbhtHA/6A0GPh70ZivLyyAXflCY2W78xWHXQLUCKi2M/VqYfT7bEydmCxn7RbRM7gm8NJe/KnKaxsy6EP8SM12b6LohXy9GuqkOuf8DhVxCaSKx+X/06oA0/wawwj86VF1OuDD2Nf/c+r0r4eM2KtWdnCSXkDQKo1HVazwd/24Mfay7dpVuVIPfJlgi6l5IQJFEDyYNlbTVUCBfizZKcU/OhiuIMjn8kSxxlSpwn2QU4esA5nRhjRDt0WCLuv8t3A/DTvEfl8QExnG30Q8CHMNKDq7PHcjh+oe0EtVg+Z8tggy1r7Oo+6ihMkIHPYE417zXyLCNfcbkveHUo1b1d2Gi3mL45NNsx5d3Eud+YQZrou83VZrr+tuvv4oX3sRQZJrMxtjfoRp9YmxY9a8yF13ohAyRQFbvBnfHyg39VFUVlvxSU26yMrQiMS7BI/G+QlyU1kFm0y2aQNag3kykKfsnC2UMBZ6dEljQf9Wyk7MNIr8zQrKSx9ckQQD4q7j6/h4wrRX/BaAvXi3cwEJIXoTndc1VmRrGSZFVmTfGxGHo4I25d7G1nixxzbqAH58kA1zz7v3j+Ra9YMnTetWW4xo9y9SC7FrKAgTIPCL94sst0Ghk8kLlIFWrgp4uIblFepv7KI+3rUga0Pf/qsCCnW9LZmHqqoqWK1DcbzIyvHgumio91hqZUl2g3SkpJnQJlY0VUZyqMgeKVlEAqAnEMYK0qNDuZPlJpZtgpB+kgZD2R0mLRgMK96HvBO3E0R2mvpgVd3tfAB5ZO6a3ZLpa5lixDr6FRqYkGTQ5mTi0UYSPt0UkBImeIRF3y/sh/SuSf3stcdZnKkYVV5UODONDiTy3W057+idEjbX1i5m6mVSBfU6VhJDA9knDVZ2KjTCmNMsmfBZko8iJPTmxa/p5dRtB/0zwBQ4Blzrq1ZxkOT+e0CpmqluSGOsDLsZVacMqWEvI1hQu9prZPRurbd9KNLPtwUvWvFKuXWzJNk64IhMvg6yqarUqKBBdUzkL+IXjc1VSRQrAqBnNcO30nGDmL24iPaYn60IRTcmk/62Xm6GDKqTJ9TEjaTKo5D683b4jJCPjus93ow8cL3+gB22of+6SSxhsdbHSdgkd1v7od0PeRtlYhSDsVve+aIkUGFcYhxa3w8wm9kJCTlI9YLt+bHQ/w2QppQBrUoTCcH3hj3m/YQMoUylrzwIQG56H5zPyTpISEG3pofD/ETWB4Zx/FSJQ84Rveb+yFFD3lJsQc8o/vN/ZCqh7yc+wOy0f3mfoiN11D80pofD/HjtWq8Qhc5fEg0XqsfrzK0QAD2IMtY4+MRfrxWjdcUUnas+fEQP16rxmvM8bfmx0P8eCWZCHmjgDFirf4ZzQ9XEZAATwjXu4CBdL+5H6LhGvP+rfnxED9cmyi+NVKyttbHM/xobRqtsXyANT8e4kdrMw5+BIa11scz/GBtNlhfduCAlHS/uR9iwieReL+1Pp7hR2uz0fqykgTMpPvN/RAbrS9pnoCcdL9pDyHb6G2rCOhJ95v7EennKh9QlO4390PyTwRSwFK639wPKT+3ioCodL+5H1J/bhUBWel+cz+k/dwqAr7S/eZ+iA3Xl1U+4Czdb+6HjJ/7TcBbut/cD5k/t4rAcOJ+cz9k/dwqAprR/aY9hLShGIltjf4Rw4/XkX5uFQHV6H5zP8QW15cU0ojG6/DjdWhxLZE4qrU+nuGHq1FzXtbFwBXifnM/o/1a0gJjiPvN/QwN1jcMQ0A9ud/cDxHUnynmB3XXmh8P8YN1aLDGcvPW/HiIH6xDgzXWGrHmx0P8YBULBb6s4TbO5n2k3EL/y5ymLsH/dlgCJ7MKh6QHDy9ECIl21BulVQwFNlgKfVjv2Qf+6aCmQn4JEQKWy/3mfgh5LlDeyqdQ8u0Z0UyYfiaQudJrimdCwHW539zP0MIdK+pb8+MhfipMLdyx8Is1Px7i54I4L6/DOCC93G/uh3DhBhITsJXknxFNhemnwrSp8FITCKgv95v7ITYVXuKMgP9yv2kPWTrFxVI01uwfsvxwXTZcXxZdNt+oncPO+krxoY6Yic5CjQnAHCRLP5OpUqTVpCWqOhX1zCAjko9ili+4THG+YvkpsX5oUVgra5sHLS1I86yXfk4XyNTE3kXwldgaegSInyCg+WDWBdiRDFVeOW/mo9SXbvpZtxQvlZfBLlsGpnPSluBGsXwoTwvgoZLLo6ovoHM+cuTLz1ORgOpb3Lq2zXqbhhPHhxPYbYUrAZeIPpgmYJOLkpyUS2v0+MEVSxgsXbKGgmKaKicVfEq6l+PvlLQE0qqzMofyp2qFgNsPCllBKc/EaNPaYrRQo6ayfVZlh2AGpCXzea8IvF1P/VnikNp51/RniUglaIEYv0ZhLbRXPpSXjV+M/2oQE867EqWFXu2BYu234P8P1njscl6X67wkQLiMB056+RWRjKZY1cQaOXCRs+RgQP2LQwVY+yH6+lyGyoFxigYwhQUP4qVhIG/jJ3uRI/uIPx3qP2RSrPmUJSW+BDWGS5Qv8SOTaXgijTqJJ4L4jPqWN1jEpPgmldiRJuXHUnXSJl+/Jl8OXqZf1Jei8foSmwRsrvvN/RCt6jVUg7bm9Kkf9g9qMAb0F7r1NNXGuIZ+IJe+ZcKIiaqYSCNn1GtC1MLyO4TMBQ56d0QdWj/MbCL1ossnnp4cqHfmxYVmGFkcBveVQAwS4w8aMj2Emeyjb11Nh/ah2sOuWrOFZM0S2RuIpuR8alYhRGYl04IA5aHLNhk8rUIwBPvFcM71K3lmWzq0tdVQKNqak1kgZBPR3UIBLMmXcg1x0khYRC7UmEzrk0uzcXtq8KrHHEUsvaP0CDhLIAhgHfjTYR2A6nrpcA6I992o9Jt4b8ruFuwSw8V1jTXRk4ufKI+ZsAM3btpVGvyINqtxVfIhrG0WqkAV02Pxq6FIuT4S7MYLkcouuPiL4wv38sEo+0Gwty/y54tr04yVqqz58ZDiH6JYtcXHi3QEsWryrK10KFZtcfSeItZW8qytdLxLRlljsw1WMD8s7bhoy5BBqOapBkl7cEyH2cRToagYiSj4jZMRmki34HZAkXfs4c1UFFhjOlYRcIJwd5Y18YNKdeGgciqBKYYOBg5J2zEQhoubOnlZVIkH8XBxX4XRwcrSVIWG/P7wLAwiij1cyPmvH6+t+9f2SynLms+lTULp1PXdRWdp6+5yGRbCy6ZJYi6gwGk7YvWcH8Xqs+08KJui01H1OXniVTp+6XJZ87+4vzXqb1Nh/dHf6fv7SwXMmv/F/W1Rf/vL+/X7StK+8gLnVPOwCrT4RoeBruYmM7KcbsXwzlKlyILSUuygq4tahHNK4lq6ZDSF3WZ+yKXiVIO1n5BWPPTAagXDp3KzRKIAoq0mFZRJcicG3u5mYtZgNpGK+PDABFZJVhPuocAZf1CpCss/aNJUbLxsdpmPNq1YnA/id3UpYPYD1ZY86Swl7Yv9ZbUVJ+1TLbZRFfp0SYTIplgyCLg1FDLxHcsUocux2Yz56KEFun3Gnz5p63tBkKZAYf9+cz9E20iPsxVq3jmh0Onxgs7+OeiKnahvCCVQyskAdJuh6xidC5NnAaWk3ekFhWrNO7g8dX/kO9jajTdVJImPw9ap8XO+fHWN6PzGyfdELCRPHEhJe94LtlXNz5ByLPNBJGABkvOJw6LcpTIvtQiCsOYqfzQiDtOI6EWHhUdM5+kDKSklGkvIWPPjIX6jSToxxBou1vx4iF/9k04MsYyLNT/xE4oeyykeuojDHdtUl+8G8FBqonEDHeQLyxCG9DPkIzMoG/HA86t+0kEiVmrZzViycrfUQP50BnhdrphEexSjSioOJoJRNPDajS1eMQ6aNNkbaU6ZOvWkUzFsIciSz53UZAOYGD9C/dILKJMGWEmUpDQT2gtAeGzPcLhpX48ZSR57n4S9f7GNs+aTfCxHV1amAN4kL4TkzE7QlB2htYVB3orI7HwQxng8YLHJY/gTofIvupnW+hSdvbba+waLHwWA6GuDlW0KGWogLGv/vW+1wyB1mXyz7/FYCzySP2Wtw7EWjDWfnqnbS+3suEYHxurNIDPoLtLssgyX0USjOkwyTZjzGzx66xd8yeQfL6BjNV9J/3OdlwsqdnSdi2tbdi4mPPPM/1+0CYl3kWqYj3llL2eK/H7tk//0VMt/rBdjzfu9nmZ1gdc6z8H4wvJzyaYTbwswkyDEUGbERIIXV60aaAeQ9enLYB//p7vaEmJxGmsmP3djI0caFiDUPCwswIme6j7IUHUaSiQxknfaKiNNFTj72if86ZEW/hcUsJr/qR4h0UkU+v+0R34XydpFXrRm1HxuAFHmvK3DEHxSRiJHPNFuRZfM5A36bcDeVWA/CSZR113dPtrz9/SblYT8QYeL+xoULZJHMKesnSS2UbLm7ah7ZZ7OJUGIbJK7D54qkHpCkWZLQWFHNDDwIpuBGtuH1RewLmxgMC5TfIrwuOZUdIqIXYys2T/EA42TgMbIzIR7CpsHjR6GAmboSij6oQiCYmLgVPnV+heBez7IbMrpsad5nGsqWpZjdyJrPpOQisNofjur5SD5wsu4aUWKCbaKiXHR1FaQ0nbOiDweEZnHuyYBWo8XCK6a/5mJeZuOVLaTC/g/MzM9tDUVLbaxj5I1Px7il0CDnr5I76QIepo89DQZ9HS9TJkIepo89DQJeop8cvyQc6EB9fLu6tp5TElWUqLPHJecwqHBczgYdleQ8+iKX0cMwjpeYqsy/wddmadng6mtrPqrK341Iqg1VPO2trOEQuIBvzw/cHxkbJNb/lNVod5OW7daymsBJXlEbRKilpn+6MXU4xRySUr6EfiugpdRx8pSho8+L2buIp3a7dSKomAyy8gtmYrDoZJ3I2VL3w36C3NeHcUSecDVT+Y/EOgqkddnskQeKjZK5A1eVVNDXoobocVKOk21AlOWNJlRjdcjUvNg4VRN/r3HSdG6hW4wyrO+F6kayJ8Uvai6SXYYTAzlkOqVp8SwNGcbluasZ5rzkH0SBtUmQYAgaEbZfdg7a3PYO0vHNsaE+oAlP3O1dwYtDEt+ZntlIIlZ7jOv/X6KVBCoi5ZPFzDQXy03ms7U6PMQ52HSqeYf0vHW/Dxs8uWglH3yDG7F77PkjW9jUS4/ACmOexk8HS9HTY/DTsJhpxeAuzXvQhBHzsg3Z5sESCwD7yhaUt4jZxORM1xOoxZTeWxTHt6dCNV+kc7frZQHa1ddU+cwGKdeZmNXhfOyzbtVOBXZFHKzuOhRsUKnM1fgHD1yxbO+/Ol6+yG5b80BpOACEvDf9u/6ASlIHoWehEJPsRufNZM6OdopPccqBrOanI2HOVbDduZUpSM/sh19pxLkCL/JWfK4QXk9LdN40+zFry3CMhJLlSNapsoUFKsyKZPynGY0puVlcDun+TFP6ilihGk5RHpYCoDQhxOJGWTlxU0irY+okZAfWlr5eNXPe8O07dZc+yFaZ6u978SqeU6HmJnPH9xv+ETiZxqSh68+yk959H4Seh9UtPghk0LI9DDrH2pWrNNwSuVDeX7LtbZXU8lYkgop9KxWQRFLZ6rKX9fNNJ97xuL9Kr/Hkw6hFyhrAcLNw+i5pZAifkwBLopMqJG4Xx9urJX+aFl2ohVJsERfxDIf8bNnISQzQImdw6z58RC/xzfb41/iMJEUHnoMCnhWveeZr2r26TuAF2NuA/CDNNwR5ojOfRn8vwiBmDzTIZG1kNML5ULNTFwU0oglyDf0uUNiJvjc8aUiFcBJ3+cR01MjkqgR6YUakSJqRPLUiESew5s3iDXvuC5ExEQ4GD1PTPzJPM7S7vsS3HmyRSJx4sVvxFrPoJd/JnPnM/y9gt4k8yiIu91TiygaRWJiyVM2kigbsXOJtd484zirIbfCYQkO5DUIr1AApULD68krk6JEwuqQiHgPBtJLwcMTQ5KIISk2mLTmx0P8StjGD5cUa/4HW1+pe1C/7n2eS5JkchNbq1jr+YPzz6ho+S/5wf3KJUZKekH2pYiRkjwjJYmRkl5YD2q+LQSd6Xf4wP3P1gRPY0ny2fnkweAzp7Qwr3Px85p/R7tCvFYmhAG1yt95yVUqSID4B8IAbLnEGGZqeVWe3pCvHdSUwdWUzQTGciZ6W8KU1BWk9Vxj/QyaizmRUr/aYy3wpJrUtcy9IOHVLEXFIpWthFmXdKRJhjyn3rtZ52WBHIv0eRN9RqhgmYizkWrvweR/ZfmYed+2u1/4g2SG1TwyCXfHY2bmS0EgpWrnYhiS+3V36FkZsgb8V4/v71do+RZB0+asf9y+/bk+w6vD8KRmfE+tKsYL0DzXe2DIxK/JehH3exnHEDIKZnxfdgYU7AgU9VlloJp3jJbnflvkUuvFYDvIQibm/S5YR9K3Lg/lieRpS0kOS9BtKfP7WHwi1lLyrKUkkyUAccIdLWItJc9aSmItITcWhi8Rayl51lISaymVWOk9Rayl5FlLSaylFLt6WvPjIX5NE2spxcae1vx4iF/Thta02JnTmv1DPG8pibcEkYXwxUa8peR5S0m8pfQC+U4Rbyl53lIaOjuXl+0yIi4lT1xKIi4JzPIwebHmx0P8iJW/TyovOb6IupQ8dSmJukQo/jc3n59jK6WZIMajtSAdzVACUCPLZrW+TC8blbZqwd3i2lmpsQeZOEMU6zTA83bJKvJgBSiGvsTl0pMevfdTZfziiahV6slImhCumo5dEYdcr74H1REGsxuHmEZA5GlNK6wA6BtBD6szNkg0lGMytPb9jTDZ+I3gW4TFntkPlnoT30N7RmOewJVE4EqQ1g5/1KmzC+TBy7Vw8ycqpqEEuYd1L/tP6fbZTkYB8b4zdp16XR1IQQNyrw9ULZuSal3xKP3chTVF2FGJNUP+h+pwWK4fX8yvJSSI0dUJEmV+UTPXI27IpAPI90sMsEwzuETBJEiuYv+Bk3Y2oFgzoSg8OH2K/gUQLNyTcESVbgv+bT20wZojLzIUw9SExH9AvYq5LKR1hYRA4UVBClYx7mAY/FBTEQ4JU4P/JnOTF9MAedeEXAsfnhNxYbU8h4BfMMWce0lQB/ZN95v7EenH5h8x25JntqUp58R4lYuIbckT2xJZaukFJRrx2pLntSW5OL1U0+Zmy6BSxaQ0IKHbh4CwMSSi6MuMuqbU7HDWINABqjZ2wdzxMZTxHzh6MXGcKMCaFBTX/benT1rfCCGW8LGUkNmC7Jh9JIlWRIEz4UZLECZiIMLCxD6E4yxbXTSr+odUlopEPnsMZRYiww/zPmnrMd08ly/JvOptBERbg2fyJbLyaqgfliIaX/I0vkROHpa+J78+RSS+5El8iYS8+jYKoyDGU/iS/Kteoo+IwJc8gS+RjFdfRmFE30uevpdIk3uR/FUjSQoYwWdegHAzZOS2gNBpgMCtjCmSZP/oTGM1479+Wpxw93y9RGZce+tZNNE9ly6R5tZeIqLAG+t+cz+CwJqXw3NgjnW/uR9BlceXo/OKhrynVyVyll7EYFNgWHW/uR/BoOMFbBhxnJLnOCVyjN5Qv4Fl1f3mfgSGcGxZaY2PR7hBn0nTecH55siyKntiTyZx5gXlq0ZqP2JJptba5CKdvi1nuWfwgqpvwE+Ty1WHJPahXUodOOBn6Qsxk2ntAwvAmiLCCOUloFXA/ZeyeVQ8B2yMqfP5YQyU6FDH3WRKj3+pCoKP6B8pr4IcuVXoGI8g1T2093xGt+cNaVpDuV2WF2M/dx5mEzBZXZlb539I5h/GKhSeBiBkSn9ufKaIn/3DIgkL5XpZc9lfqEAC54tk/ZalVAVH0x5H7Xigz+iMxDt9X4z9nGlfiQLbwPkga6aOIgOpZyMNoi+KqhNk+nFVzS8L5wN9e8nroZIuowK1TvtQqWnKf4tGAUczGwMSWSnsj98NmWr73FTPf9HMgCFJzp+i9mfjNJsu5LFQzEJAeexWidQr26TfTZYJ/Kx8fgIFAWnMkSV6Sv1XmaAwkfGlji+FdvllpUzPU03aD6F04axU7dZv+Jgzyc8Zxl3lbdIE63H2NK18KPCK1/QcsbSyZ2llObS9HHNzRNLKnqSVZa1V4lU9Rxyt7DlaWc5aJV7W8xGsydkTlrIISyVe19Ua7L7PXfcfbrZ/EvhxNT57elIWPeklyFHrv6x3ZUPU43J89lykLC7SS+CSj2AnyZ4flGXyVF+GUoq2Es+FySK71DjXkVNwpMmeu5LlgvOCA1Xric1jYSCjBj7HhuadoDsClAYNpE7dybSlXulVDueztGIOcfZ8mJx+5Gpziqarp61kkkVgEoHtr/hHRLPV00vy9qUIc1I5RbPV0z6yuUa0TwesYPhnRLPVsz6ymUa8/UxBCJU96SObw8DLyhMZDGRPyMhmMPCy8kT+AtlzHLL5C7ysPJG9QPbUhJxNY+zlGdHQ93SBbHSBOKbMOdpVPIg/G4j/ZZ2K5Pmzh9dng9e/RJU5Gqce854N8/6yQ+ZonHqUejaU+suylqNx6nHl2XDlL+M0R+PU472z4b1fxmkE984e7p033PvlGdE49eDrvMHX8TPKESldYBnstgbSnYxrILWKuQbWSjANKpCsSgof7LviIdy5/Mhd5RKNdo/CzlIbpm7wI3WRSzTYPVo6m/zvy2Av0WD38OYsePML0CJH6Obs0c1Z6OaXDFiOwM3Zg5szgcqve2eEbc4e25yFbX5Rj8yRrm72oOQsUPIL0CBHsrrZo4mzZHVfquw5UtXNHgOcDQP8MmEiUd3scbJZorovEng50tTNHiyapan7ohqXI0nd7KGcWVjNlyp3jhR1s4dcZinqvsi95UhQN3vsY5ag7ouYWo70dLNHMmYhGV80zHIkp5s9JC8LkvciYZYjRF72iLwsRN6LcFiO5HSzB7Jlyem+6IblCMeWPY4tC8cG2bBo3qrVGPMbydBZsGK+OX/xc2SKxxB8UI6NJyCjJI1NCEXiWwjnYxOAifFnQlr/tJMainT4OB8yz1aW6wCZJriQDH5ZReLvSINSK2n4Xl4le1xcbr92gEj/N3uQWxbIjdZ+TwvgHGHcsse4ZcLL8tvRR+LAND8ijXKbJhDAUa3K6KV8LnZ1ps4ZUkj49XQxNmmKQjQPEmj2eLcsceEXdzW1nlzFlOyTL0uIoA9NtJMtkIPEF4vD34Ge80DJcuJJb1RZ8BgeIJU9Ii4TePZWaVYrXxjUCpLZYp5ePaJVVJnTArRvY3Ki5FLlFpP5PWSIk+lFBp2WzGodaoXSHUMph2IMlHWhFgPpBKyIAlefu5EGct+OEbLUHvgvs4hQl8jkplKsjDoTi1fTipXSkajmqgm36/zBabLYvQzUlBXWUdCsanm8RL9ECqz3UvBW61ZuuqjsrBdXvotTp2mYsv8nU+6fINZxAgmpGSCj+8OsAvILhTZ7LGAmSi+/MGjVyhcBcBq5GKZUNrcVOo2tu2nRaeASJpkl5pW4lMEHNnE9sqsu9Hm1ejew0ZloMyrSEe6/e3PvvV/8BSl8W3yitd9DAbOggC8GMmoNlL9Ir6A/H1cV2i4HTi2ZlGw6d5GSzVaCMCiGt7IxyalaMPNzXvpdRqDCly8cqWBnDx/Mgg/CreOArYl/RrRie7xelgg2oOYBdyJHGtjZY96yMG/AwwK69+hHFAx5LFkWlgy4h4B/kiMsWfZYsiwsGZB1AQkoR1Cy7KFkmbAw+LvFz4iCIY8ky0SFpV7iXTACkmUPJMsEhaX+spNGOLLscWSZmDC6jIS/7RLICOPbrN3hLAf2CMs90EAT6xAIPxhMQxdtnSIQAmo+UpkeiJaH9CZS3IsIh5Y9Di0TUwa+Q2QJkCMYWvYwtDzEEYtxEWo91fa4ZWC3RZ0DP8CdfXWJIiT6uJCMPk7Lq3HCHJAvRuuja34CEaiW4AEedu3SRKUHMPXounUDxRD2gtUb9oKVIPYCyXAZ5khTMhtJC9glikeSAS0ZykRZpdmfvfVTlYi4/MK1VquXMSRAHoGtxhllDE9qBxzuTDACxDdy97P8hEDsWNgeO4ICKkamB50le4heHj9QGDkC6GUP0MvEvBVg18NRG60DHiaXiTIrBxWm2yP0ipTFswemZQK6ylv2b5i5W6YCFX/fySCJiSDgtY5ik7iQ44bRUCShkB5T14PHMjFS5S3Vplah9sbFXcdHiimsD6JqH8WN6SAnDj2wOXBl1FWyXNajQ34tIeKqpJe1ZB77bZA4eTo2J0rsENM+95V6SUuwY5jHc1GyDGjzlFW6KamEVkzZY78ykVzlLWMUgb+yB39lyZq/ZXsi9Ff26K9MLFd5y/bMcreaRQW4EDt6OeuJ/M3/588HBnxJVowpSYaYpB/qzjbbe3TMLxtTDNOXlIkhzk4JGpZ/aI14htEaOrSzJ371MOKp/aBEsOMADA9ICdpfxmAYofHv6NcO4rHK2+lfrctI5OaDtz1Nm7EB0T2dnOj6nky2WTjLUrV5Ame5qZ0UeK06EzWe8jCVqp2JYBmLQ0ImUbPQLRNcB1FAMd+LrC7XFiSFapR09HAAKlp9sb7zRKx7ROBCjoP4Dv1b2jpm2T/mL8wJCyFwpJkKXgmUruRc8byq0+0jvPegtkyMGtVu4KjrN/AI1pY9rC0TpVZeIGXWms39s2xHWUX8034iRO2S205NPxHMehNBi8iVYC3Aa+58LSBxUqJnf1uMsGY0W3B1S+12h2BWyL3SjnbQmHZRrs6AsaBdFZ0DKfLGpRoPpSQYBJ6Q06nk7BaKbpeHeEv2OL08VaV+m+zTyDZFHrKoURrtZJVx+/4cmIgQOBobTuMUSgXAohC5O7h0i6pZOBOt01w3+M2T0MHVzHnxmRRflpQDswAcb7JUx78gyrnRYjYziipkiKFmUXisfGwIHmWYiRkktDqcrVG+z8MMM0GDkFQLnxHhDLPHGWZBCV/UC9Wap5Esz4qOqEyDO1UjdV+LAHztgV9Xfaf0qVpOoRZcOR5rmMcWZqn9j5jJkiNwYfbgwrxkFBM71qj13PJv3b5t/ueWP6iYR9kwcJto7aW/oU7cU7Ime5xiXhIgeHu/9d4bMfVQqaQdsQUbZyhySm5xvf52+I4zbmb/h172o0N+myCGsbwoq+WtUS/ipShlmvcMZgktRoUOQ58MXeg+PT7TL6KSmX/L8LCVn3lQEotLE4YNhtq3fAr1gVBbK6T+Eg09+2d8ezCk/OJLtGR5EchS6/nZUA8bPCqBYmJXJLtPWrojozUp1UnC6Xp+ul/nCLSEGUP86Swc8PiCb23TixpmVElCL+xKDsdYuNgLZPnVC9BSy+LAzI9cm8d5ZqI28cPFk2NpKyrSuZVZArL4TNriHI3jjRQUsXW3L0IWjQ0e3ChLtYJp4ZauQugnfsSoH2o93ws71HhebCZuow517Ph5GRu8nLzw83V8uH8EL6Z46Gkhrq68gEjKEUTBxUPxCnF15QVEolbtj/czx3WWyCTRoNNzT28dHFGSOTDrEFwy2fnoSvZd4dH75fSl1qf16y3xe55xxckdFNijJDEiB+AxeO6tXKdo+aCzGUisdF85Hs7ZxUMGC/F/9QXMoFZ5GVCcmvUj6IEgQGnU6KjkUUGokqKJ8IKpFFZAqhz5YoGtKl+t7lGYrTxfYPV940L4cipSqxxI8jKN957FtuibIQvC2Ng8MGFbFxGo/POazdSegkuMnHvdSX48FTkF+HIMi2Qoy5zOz8zdVJUUy0L5DRMxIbX1kScK/60icW1ekiwq1M3GxKK9CwAYlM5mFaoqrQwydZJaLNDSw6SSahJjBX8nHKGsYexfSNcJf5fFmPfbUfFwzSJJ/Zc6sFp5MEYOZvs83wSrOWI7mcXTBkrNdf/uWab0uDJn6Ed/uu/PeM/AlCPIfBSPzyxCYL5kT8oRZECLh1EWaba/lIPVypMCq1/UvVkG9uQBlG9sTDsgZNq581dClCFNFowLlW53HZasJdPemKxNgXq+rdTgWFLJJucOLY8RJOFYJoZxTi2idkKKKbN68pxmfh9IP4oJJUJ6Fo/0LIRtvr7uCOlZPNKzCMsJ6swTAFQijfLiMZmFCMv6gsMuESizeFBmSfXX2whKCcWDMgsRlu9vI0ghFg/KLERYQmUpSuGXCJRZPCizEGFZy8sGz1bC/oeJURdJE4FVV03qLae9ViZbKnH4UlVPEhxcUo99+oC5hRIPlRVLEjAwxMV2MA2qWtdeUJPOzYX5smoyUpVqTitr+ciUSqrnXKvsLJcZWkUl3Fp8fK1inuZPJW8WTZL5f+yEHn5a0o8iYonQp8WjT0taP3/44EBZPPq0EEr6Ng0i8Gnx4NNCJGl9yXWolWSQQSzgF1UBsiSwYUl1jM4EB3dPkiAWYo/FO8bXQU1AWRElrg6yd0cxlgvWvS9y82KHIFBIxhdKpHikbx6bsYHidlLqNSuPcHw76iIz2w+dSSiiTm2pxso0YyCkOxpzBoW4gUTPB8TIckjLpMVU5EwOkWgSR1xigaNQWpC/Ov4M6WpEW6LuFIkcdsVTiVoYiF704KpMRdKiiz2/cmjC6YWy4XyxFd/8C8X5emZ+qiASaBwWhgB3mXRr2VeoTa4x4BelL8L6yhfOsnjbFNeqfB+e2pitQUW3nT3jC1Hr3P1ua191Wss9xpNfmbPKWymsMKn1EgI/61vgeguGIC8FBHLM8DCjBkM7pcsri4YN36rvuk3tCiohSrlCZa7ioc5FUOf+MnGitd8jnQthy7TpCioEJUI6F490LkI6v6CY1EoeFKAC4hd9OAnm0pybOYksRwo8f2UcODCclllmUZics9GU5Ea3KYhghXKeRnnDOFzVBAdA/AILrjMQPr6gknF2AiSTqM2XU9/zD6wqUuFml1NN+h6U3SFRCgu0uktYDx8M0AcZcTQgJKttYFIuZfS2qSG+ueYYDrhIYtjM4pdEclPjEhCdSkFDHLQpPsOsd2V0Thencc4t5h6R8a+DMTlmAeP+xX87yRDBvbWv5qH3BGsFhPNwFM+2N1VufvwwMvv4Z233bnY7MVRy+/BW6tTsQit/swx/Y34fnHi46fFT1/ktyPHj8/QDIYony0//tp//YpxX57fgkoa8fyPTD/fakewtU72cfWn8wdVaz3vN3hllIq112PumjkPgKlY8GL8QWU8V3SBLaK1m91bkDWmypEerFhITuUjIC8oVpUg5CFSWQ9ZvjSW1CXxJyqzjzk9TTY0qLARg+fxP8Zj/QgA/KtxhGCRGwNYETrziYnkuZO3UCWxpl44uC5FGR4FBMtc0b73GAld/KD4VzyUoWXJnMcpCrdy0qKUhiNuJr1PdCBm9bkOJAxhOZUwd4KC6dkkCk19FDaskjWSKHfCjsEoS1ySdggd3LkHkqs6vq3MlzxQhJSSOwLg6kn0G5l6mCDQlxqDI9Gk8meLvWt5oPTKECcNrVLsElo+VI7tqBshruZ//dsgb7fFCfQhGlkR7se0tEbGieGJFIb3hrd5UIlH74hkRhfyGN+RkiSgRxVMiSvmViS8RJ6J4TkQpSjPF4lbWSrY0Q0EE/rYLLQV8s5h3CvT5JY+9NWzWMjNbYGnFxlXch92CFGl4lE2xjc9NZxh1GJuEbT8jW0gI/JBCQhaYFQq1dGrYMiJMFPzUcZnQQUY7oBcIyolMD61svxR94TrPVu1NVECu1svMc3hjpoeA1Nz3zlV3mHhQe5dRX+67PoXWwk6hUiUrHyx12s2qhYQDhkR6WWMHbcUCokTtIVt6Id9PLjKinXIq/1J4hHqd3MwB6OL0RK2o8ePxJ42lV7hMN2l5Y6ll6RXvsqngjMdxgyVMpqb9lJrtizX6ByNh1xiyoieMWNXYz6uzwwxZ04MeXTynpohTg3AdSGS/yEWcmuI5NYUEGcjVBpL01mixugSJ8E4kd2xJfQQR+imarZjzGFoxa7cABydV/KCZxw+FOvtsi2caMBjoPDNoRoWqCUDcLM/HVu7psm+mVySzo0mZWy7kzfJ4KKlU5XeBR2+SbZ6fxnIvtJEay726KudVPf9FO+/182qcV8wVNrmYQTWrfFo/zqtkr6oJP41NjSv8GM9f1UcApBu1F6WIEjGUimcoFdKNWo8xK9Yquelq6Ye9MYPAAJ4EIoC9aw0rgoLGutMQSFYLxA0VMFbiZfR3mhRSMUGqPlkDZRnCAaNe9fpGhZ9tHUjhH11RYYolgnLSOmTSCswi4eb4u0bBKl3N82rbCzbmBfE92tnTRr2s8nDiLZ6hVUi3auPltB8xtIpnaBXSrd5yHxFBq3iCVpELw6jxZhURtIonaBU5FYyX4VC3EQyypiQDjJuBImvH0C2Q2TFp84wQJ7G0u3CB9BUJ3p/Guu2zdFo856vIIODl7USUr+IpX4X8rTZiYFCJKF/FU74K+VtviO0SUb6Kp3wV8rfaS+W5XGr3JbWbecBlFCD8OlikN7wbFbPmuDns1dN1r80jDoU9k6xI9P7tLUfLiSeSFbLCGiqr4RiMKgeeSFbICmsz1vIrEZGseCJZISuszfLSj2g+eSJZIcOqzZfltUXzyZOyyi9SVolIWcWTskoT8HmE8PwSkbKKJ2UVcqCQ4AlfR4sGv6dNFRGjXnQgSosGv2czlfYD2VtalJb3XJ4its7bKhfpbhfPtSlNo/SlriQmDh0xkk28OuYfzc5tsFeJCgJAoVHngidl6lzg8Lz2KVruhUf/tJVN47PRDaw9zs6eWVN+MWtKxKwpnllTSF5pLxIVJdLYLp7vUsheaTj096/XiC8R36V4vksheeUtrx7RXYqnuxTpT7/hEyK6S/F0l0LuSnvDJ7CVPz6C0yfDilZ29NAl74vBZSZF9FAgKuKBfnKwx/WTDwTuLM4iHwM56MJ/2+n8UOsjBewZNqX/qopFBJviCTaFbJlOmtiTYVUigk3xBJvS+6+xFBFsiifYFLJlXsdStEd4fk0hWaa/ITsk42wzmL/hmvs3bFW/IdLa+g0bDxNk7MGdg1socBbxtGXBP+9frqfnL+enX/8V2kVq0MWTcMo4fr31iIRTPAmnkFHTAVqJfv2IhFM8CaeM/OOXi5SgiyfLFPJR+osOiVpZXCxMtZM0Q8TDsUmNY+46/jJmK8KEdVdXnoclMq81ux/N5JP7QdvY+chkeaZMGb+mXKQ2XTyVpQxNuRHvVhGXpXguSxn9x7oZUVmKp7IUaTq/iJ2olS87U8OfjsZrXixllvVk2nrRJ5sMRpilmObOi29KSnQ/tq1lT2aB++ikn9Pj1043op3OM16KBJHfAvQRzTVPUimkhrz+ZJGScPFskkJqCEgD4fue+xh1nAj3sS4XM/o+yTLsdHG/7MFoYE140WXU3mm6qXstJEoUT1Yp89eRKuKqFM9VKeSI9BeuilpP5thl23IS7KjRIDb16U6cy0khu8HwNpu6ihSBgZZGqBNXPG+lzF+TeEaT2HNKymy/qq9s/fdXXz1Ho0h4+K10GnE0iudoFDIUXmtKkfhw8aSGItrCW7EnUh8unhdQpD78VpSZJxc8wTCc6TIjdiblDYXkOjbaZc1N+4A1V6W8OHRF8cMgTZf5wgvgK0OEuGqJpcmak1JRlaWUygI/SimFPi6N0vVgNJmydWetBMf2xcBBD4EqdmWtD/IeNarweWZDWcevCkbEbCie2VDEXXjL/K5o1/d8hCKt45fMb0RHKJ6OUMgI6PmlkLK066vSLtHvbiiXvpKAUCwoEAhVm1XQYF2nEgXwmtK4gDuEBFqwKKouDheGLPcC1hmSOeQVCpij5isOC5JVI5s8uRBQoGdJ/J4YXMFMOC2zSe1Xk8HNVnw7EGhw7By2+yGdXD9dnqSQHcmihUHur5xXlAZp5dNZ/9QVtTJgAZKllfHYQz3Roqxfq10kCF08NaJIEPotURYpQhdPdSjkH7zuw5EkdPGUhSJJ6Lc64qYseD0IWvGVS8iBU1ABSxdaE4KmzJd1lM+KGW3TokI+8rLzgzt3L5VKNY8UsGc4lPUrdonEp4snJZT1M3aJ1KeLJxRUU5+O07fWKleLX9xHwvLp63RyHwX9AzpCiKzx/9j72mXLVR3JF1qxw3wJeP8Xm8hMgXfJeE13x53TPbfrT5XDXtvGGISQMlPJAYUYt2Tdpd49fI9dbyEUCsUxBMeezdwYIu5LwWSUCzfeF+gzYwoN3EZToVK4NEyhoYCjlcWQNJr2MVWXQ20ir5LMRyQt11H1PI5VTSicM+dAEiv9k3iORQJwkyliZujkGkkS9foS06snjkSNHIkqueKXb11PcsU1khsqiQTWzjpourpkjGhmuPStCaPi7QA13A69SMFMtnIPjLXQpFyF7m5pzY+Wl2+POXIoU18jyaFeX+xSPcki18hFqATNWztvHOtJFrlGnH29vmF660kWuUZsfL2k6Qd5hAZF83iTg5NUIzq+Xl/sRT2B42sEx9frm72oJ43hGoHnNX2LK9QT8rxG5HkljPwlJlBPwPMagedVEsMv6jG6KmF2FCzJJKQJ9uAIPlL/VHa8SPkexLzpaUOZOqejUPeLSD0EBeg7WJNePYCxFJgv8iovZxczJdkWQoI5aSEksJshUA5Vyh2MN1Xm6WIhoEwrmOpYkIahlQnS60aype4n37SIZwuNeAehUkYjM92PskkEnaEwrep8g/FszItXsl+rP8v0WqgUTDAxaCidsDuQKifhZ/BcpjoE5whhBV4cWHp/cLKU/d6pt+S3TCgDKeQyS/7qbE5VuAccDa7FrN809yGhtLze0n0y34flPqz7p+0+afdhvw/vZ7X1LbO+ic7a/TC7H2bl/q0AjNGzqpHZUJ3ZcIzC1BOxoUZiQ01SNsV4O1mOVBdkD1woqnGZ3SHoHXmWzAJZqL/izV9iy+75AGCKIsS6yySogV++0/APeyx9kVdR05f8TT3RKmqkVdT0zTWsJ1pFjbSKmvqXQHY9aV3XSDaopA68m76TCY5sg5rmN9N3ssCRbFAldf1m+vL11/T9NX3/sOmLbJYqvgqggUe7ddJSr5HCUPOXeGM9SanXyC+ouXwzHSeCQY0Eg5rdBp8V8+qJYVAjw6Dm9nXStr+T9u+k/acnbVxnpdUPuPl50v4WPVUwk3hN7JQzChlJU0tamtSsF8YI0E3uBCu9ibxl83gS23mJDD4lT2ukBdT8hWVcT5UAakTvV6LP303CaRWPgPWa59fZPCUZVVjQc2tvsYdEaV+wN4kNDkhaUXqhX+PTqd7M+TLnYmR7F40HxLNGIHxVhQGkO49f8YSErxEJX7/VBqgnIHyNQPhavgYsTkD4GoHwlajk135W6YC/VvOv1fwHrWYEylcvPtHPmdt6QsrXiJSv5dsu6VR8okZody1fd0knaHeN0O4q8PbbDudUfKJGaHMVtPllh3NCNteIbK7lq3lVZYq/0/7vtP8np31cZr22Sc/nZfaEna8RO1/rt2X2VNukRpx7rV+X2RPQvUage1Vtk9cdzgnpXiPSvVa3g+WlQ052MELda/26Tap/t0l/Z/4/PfMj56Gqeg50Io4LfjWnZ4LEdHE0oVtITzRV26UqF7n0fxbSxU+cqImBYOZDnbIAEMkkQRN/xUEJktnMjmkRUxOSg6JqWlrgB3YjC7TOtgialIBpGqdLM6A7V9PPkQ23kHyJWmWZCV/g28XLBPAAycCLmUIBZ1ANDCoWUv4ALOaS0ie5d3WLqQ5Jp+phAFOAmJddZgMINclgEENByj7gmGJS4saN1M/clKPPP6DjGacb6HpIA6cfgr6H9w969qLG1yCT9PKAdmIueXbOI1XfrW5R0kVuP2j9RXMKfP3Cr5E4L6SVCxUSTbVCnXyCT8CjTtOSn81J8iXgI2qE0mYJgAS1kJwoggAaYE69r35OJOf62bl/S4KszspQoRNEtPWz5T6s92G7D+2+Wb/P3k8b99Pm/TR+Yz+8n0Y2nv+23of+tMeMim5n/barPzGAamQA1fp1V39iANXIAKoqJfW+DJ6i85ECVNvX6LxqSVHvCOxC0vtTckWQ6YgK8DORZheKCQIKFMz5Ma+5kn7G6D7dyPmGziVFK5zojBwPaadQYgIWqUjwgjKpXDZ4BO2MSVokyixfLs0AwAaxuzhBc65f8itXahdkFA3dh5RSgFJBYkbJz06djf0V6U6V5KWMqptHt6Elz3ABAZVcLkXSJaDZsLB4GV6gvCcXWmgedgHATnT3bF5hvBcvLF4WSgwUDVqpvApk51WVGpRribZgfeFX4gJo1zqi5SQ6hc+Bsrps43SgBPRUlrLKBNak0Oi5mgqETIpLMi0mOmxkr/oRq4tDkKVyhb1y5/e8GFWrrLV98Wisq1pg+LUv7xyIDPlfNHpAlFexdWc+AyZagiNUGWl+46bS3UOs5ET5D2MDcGPju0ziauDTDOJqeAujlQeyDZZRPwfiEj+fJELzZVPT90LX26Arhc6vq0egF0fVmyFrC+NvMrEQuVmeR4chxjqnn9LC6rZcp7F4zmVs/XDuw2n34ViHWdIs0HDN1Gbxw3L/oN6H7f6B3Yf9Phz34dyH6boP76el+2kUMPDDeh/eT0v309L9NK2+hqP7YfnazaUv6Id5/TTfz8r3swia1PX7Ufl+VL5fLN/PKv5ij8kfNy/tW4bnxFOskadY29cMz4mnWCNPsbbvGZ4TUfHXyXWTr1uX9nfr8nfr8k9vXSITtqqqHb7WebG131RycXnw0X4RyKnk3lxbi9kboWXpLhogwCKfYyT1HyqbAlF9Il7USLKt7Zsf2E5+YOS+1vbVDzyRX2skv9b23Q88sV9rZL9WU03RF13TeuK/1sh/rar39mZTLP21KX9tyj9sUyLBupqKK5cXiNqJYV0jw7qqoODLzD/VE6yR7Vztm9JGPdGda6Q7V/PiyueKkvXEd66R71xJXn5jzdYT37lGvnP1goJvE7//nfh/J/4/PfHjUitCfTuz9uqpYGWNRPf6jeheT0T3Gonulax1A0vuwBOrJ6J7jUT3KqI7FLjGz5VTvMcpEROJ7pW09Tcd6XpiutfIdK9iurdxrEVa+8kORgp6JaHcoNMIfbnHPU52MHLQqzjodi5PWU8c9Bo56JWMcqPZQcQh3uNkBiMJvYqEbmfNBl2lDHltn3F97Hehk1K9iBcKHKi8icpJAoukYheQKkWk5FD+p0aqef1GNa8nqnmNVPNK3rjZWYdGVxnfHx+JWXfZcmgSMaoDARjaVKPaGRMJQ1YdOCJKEQ5XfkTIgZErm6toSpaZR8iJCr2Y9IplF08s1OGJBQC1qmuJS+8RKj4pF4/Se3gM0eK6Im+Jd+9bDHw4c9sFioeCNy7Qx3rnDFB5dFPytpKANBYLlbJid6k36NYrZNa4KiRf7bQ+dHwYig0j+9AljD5c0RsavEorgHwk+W6UqmIrJ4uOMDgHyALfCwfSiURVTcouXiCZK4YHLQirftVMGqw4Z/tIZUIQzR2+UmkFwl2sX3qEUYKVpWZ6XrdbkpzGACD5bgpa8Rw/LFY7vuEcOBr73PT7sufQN8a1+wISb+TVOJUI4FHdV/dLMCvAljApwBvry/F++yUkk4y/YBRaR3n9xSz7qO6j/QzG2yh0wLdA7zDu9hCKrVFooUpoYZ6V0HSVQ694oo0RbzZmLmnU6UUcob8trVIwINLv3Nt0Ze5pRX4QtJwY6LUBf+hiKUjP8tiHYs+lLNl8+gSSzYesNxNv/PwcWygGJGokY5ocDOYlmi7FRBVS9lQcebxyn0paQokURSz+pRRkJkiQA5TVF6aPIxAtYTgk/XZ57Ui8HAqGQgTuov6m6+e36uTLyvJUc/0F03Mg0hUOUKxQVUFP6DRc069WicQCwKjMJ+ohs9tZVYb9Xl1CX3eu6nnw4BmkxkRWkBrDCYk//9vBtoCFOpkn3TMTHnDdp9jkDj1qNhk2xa51zjgUComgTMbR/ifPJfTrcje0X8kNSGfoF7Xiu3TYeVS98V2R+PrpjPoiUcvuxmsDybmO5robA768hzR08SzFtxEtSSKefyCsrXftqe2Ltv+076P9CA4ySPL2fK2/yGmf2y+R90swL9vpES9j3fN+Rl793pVY4DnaF5ufXvZrcJLxb+XrI2/lj4hzOQqeVEmavMVHTuVza1QkqdQXwWQ8uqAnSZIaJUkq5T/IGD62oyhhB+kAiv0nVlQTK9acC83gOJWGuG+hTUaWxCNovpyRyKysHepXqiQVVC8KO3QwsTVW+VpOQ3yIQvlTLvmDxGMvz8YCRI21XHFKWrG4nRRi4REj81TIaO4suqIj/A4zvWunVHFEHYSBLHlev6O08MRWUJriqBRCXrSu2j7nz3h0dHRMKZLS65mdr6tV6vZSOYfOavU+hM6qKMao1wUXRvWpbo1QjgKN2V3mrLdLuqGPtkWHl9IomDzngXRyeKOaSqU0Chp/vodX5Np53iyBXMq505hyNUJOS5VYqTtRdMqLqWKsqAgVS49xLahrNAyGPlS+rLCQgbK5Rt42jyTOlNAxUATKJCSvpG6XQC4+qbjcPGf7L6gnceHc2H8xdfTomujHj2+B3ZNGTI0aMXWMb9u8k0ZMjRoxlXIp3d6+8mm7GRVW6ry+bRVPCis1KqzU+a3yVj0prNSosFKpl/K6VTxJrNQosVIlsfK2VZyn7WaUD6kUA+nwoo/3OG03o35IpRgI1u9CqfN4j9Psi/ohlWIg3cr52/IqcRe0fzRtCEJ1yvrAncKIT/Wz60krEgMXW5VDKJe/KmFcLhEj23xJOzxTvMKn4JhUaYKMIHVcVADZKBpD/W3J3sNIm4pMd0pVoy5op7wTNL24B/zpcAoo7wSvr7Mo8GPDGsVQqsRQ3vbw8zTpokZJpeJIRzEDqNT0eI/TpIsiJZWKI1QxOn6Y06SLIiWNghr9pTSxruZVBfSuCkx1pVR/VzilJBFDAFjVVG4ZPpL9oP40qnizRGxoUIuCHo3yHBUr0U/psTmH+duinkejOAdGQYGARor32PWZZvcyIMDsJElnc4koPxkak3TaqqumZO4+NCoTRjOF7GG/q8T6aubIK1QQwhIP+cPE9aByQdUohNy9RiHPocAEi3qjIsE6UpFLHNEBeIhFtyg/0ijx0fvZAWguP5I4xRjQhEgM17iu+gCdiiMfVRKTKzY8ugEnX+BErFWMMEwvpwSUpIA+s35cZSl5XSXYABUxu6Ytx61/Ml+YBW8GNWGoXcMJu+Y8qwRIUd7X35y0/mqmVxYFGMAsknuPsgydmkwXdgKyAziQR1kYj84s+dTH5XJ3+DRsx6NrS+zaL2Ip7SSW0qJYSqPySX+pNd1OYiktiqU0Kp8gpn++h62qPfDm6ODN8kGB+h9obU3W6RnJNQxLWvE8WGk6O5P7cJjL/OmjeU0hQkl/BlyT0SWfDCgSZOKfE9liixlDpLUGaiq2+GAlW1RmadRZ6fMsq9NO0iwtSrM06qzA0J+sdTtJs7QozdLS9cUlaCdplhalWRqFVgbG70++4kA6SbO0KM3SqIPR58tAOhUFbVE6o1EIA0veRO2VeIuDY9KidEajEsXb+qerW2qSZE3Uf0NwqtEjAJJaUpOdLEwdNRfNxNZ9HfV9dexz84h4aFEdo1HrYlxnj7Sd5DFalMdo1LoY18vimPakY0nwXeFbywBnUUctatQXwD6wMneI2VRZR2pcxVfMAdlQFFV/tChOKipnwPadW+TFuypMLUPylYXacXcUuhtU2631saBEQY5GdQ2Ibp+fc5p4UZCjUV4DtdrP9zhNvKjI0Sh/gIjQ8R6n+p8tKiY0qh+M9DISToIJLQomNMofwAc63+M086JiQqP8AYbA+R6nqRcVExrVD7ALPd/jtBxFwYRGdvqApNvxHqeZEQntjfTx8aIr2vIhBdUi47yRPz7S2X1tJ8p5i5TzRv44ioqf73Eap5Fy3sjzHullnJ5qpLVIDW+keY/0Mk5PzPAWmeGNPO+RXxa7EzW8RWp4I88bQatzO07jNFLDG3m4UGs836Msq2deSgqBmV8MfBa7RzqfHga84fKLgQ8HDPwGMPMbKkkiGgsvJeLZW6QDN1J7R34Zcyc2cIts4EZuL8z1+R6nsR/pwI3cXsQUz/c4jf1IB27k9o4XPc12ogP/OrnuwbGfzykbXc2dnYyQKDfRtzYnpXWp3EqKw2QWp0lg80NPh2QgxN/9CIEIChKOcmE9AVWK5ZkegIYWaceNHE/Uzjs3ldlbhSA/0Exmk9OlclHFK+ogUI+UhwueXyRHALTCipMA0TctfbP6EoxXGYRIsrFVN340Ns5lcknHi26nrnK4gyXBSvMQxERmtfEIT+w/KIeAZNn4QRs6/o8PjpzVRgYqKsieH8zQ1hIFYXdN+h1tqVOzcygPUskywfBicAPeu74ke2S62PWo19mZilTYRl7rqGcivq5yfzmn9pcYXdyHoWcofJk+VPqFD0dUKzRtJyPnMBoM2LN2s2oEAKFDgVJWbGuqwZm93hz4N9zlZewGmTAeKPjCQnLMNEqovbiy6IWkK4E8UBzurD2GmjWddQtQabZzLwqmF3Y8iFIN7njqz2Tp9+R/O4qCwP0zpHIKdIRUTnlE2WBLn8FofquP3WXkBzdyfUc9p0h0ld3XuWFPzEKIZDAUa+MV5rEtaecO8IFy8pfP97xibajsKIBCdwYUqDrSes7OaUSuwsFSgLyRAkiROya1zVatuKvMDSBYSRWG0ZmYhqwyFWp5pGp/lMVL0nv+VAK+0JXaz0NjuXmcvuz0/mCmPTPOYvo0Vc40IhTdUykoCoxFiDfuzNFgQHTW7stix4BmORlv8Xv01aQ+1l+yOmwen8Fhg8ToIMAMW5LBWAMusrlINo8mjWucy+sPiC2zh95Oi6TuVr/FFU6U7hYp3Y38WVLSMIsf9yBrgovwpAiwkguNkZHCON5oVQYKhUn5P/YH/VFGpUWmbiPREDGrU85AV5ePgGI7rIeL0YL5oSqCmbQptKeypr3sGJwE5M30FzLjRkxhVV7q0bK4stZvwdl2ojy2SHlsdXzbO54ojy1SHlud3/aOIkR6D2HiqbLc7Sndr65NJPKX2kSiXIs2kZ3gLPpR3Ny9dVFc4Nr1bRMpIuV/YRMZCYiNpKTXTeSp4FqLPKZGVtLrJvJEZGqRyNTISnrdRJ6ITC0SmVqr3zaRJx7Tr5PrHu3bJvJUca1Fnklr9m0Teaq41iIZpLX+bRN5YoO0yAZpbXzbRJ7YIC2yQVqb3zaRJzJIi2SQZte3TeSJC9IiF6RZ+raJPBVDaxGr3yx/20SeoPotQvWblW+byBNWv0WsfrP6bQN4wuq3iNVv1r5tAIXk/wc2gBH+38y+bQBP8P8W4f/N+rcN4KneWYvw7Gbj2wbwBM9uEZ7dCLaGY1aunxSpHbqqqhqOOl28azjJgjEAX6mFlPseyumv4CPIsp2OKXxL+D+V5YAHQR1QKx6CcjQ4AV3h/keb41wjuBtwq6OzyqsqF9D6LhfG1C5rftwVG1HtQwXcnBjvdakgBTHa9FzFwBruR2m1lWV8RnusPRF33voX/Z92gp23CDtv/Zv+TzvBzluEnbcuDu2Z79ZOsPMWYedNlc/gvh1qjrYT7LxF2Hnr3yi07QQ7bxF23oghT8IjPJMgJ9h5i7Dz1sW+yS/3OE2/iBdvwouzjPGzbkA7AcZbBIw31SZDBfnjPU5LT4TMNuLuht7lgc9op9pkLUL12hAN8VxbqTmQj0EW9xLBvFH6GLaWNaooDGKseIrtEOUsqV3SManG07BGsF9T+TGU6D624jTSI9ivEZTGyjvtZ14j3uM00iOOrak8WC9n333h2ATXYgCLoQEqfRrR8Vhmkv0u/AXtl0rQCKv2uj7qqnoGsQJefTQtTiBi0iAOc27arhQN3hZz3KP+SrKqFdi8qxXpat6KhL3sSF75MrG64uS54snbxLQsNpuJ+fFhz9bGqUqYGDfSJ0vNq4WFUMdHFcRveODei2QWSpvXqnINxKNxA0J9Co68zyDEpjwjHRGo1r4B1doJqNYiUK2NbwzkdgKqtQhUa0SdvVUsbiegWotAtTY18V8ChCoURthC+TQXjTEui4nRMX5exmwQwlB9rAuro3FIl7GEnAqh264w0wh5QvXbxGox2Jm1SwozwNkIYDjMvOb4YJxLR2MfOazwM/q1j9I+yvuo7COWZxvlM3rb54j+6Y9FOKLxGqF1rNg7fuYVLaSusuUQ7GXUDljTTIgBVJ1YTvHDsm8/Fa5in5wU/TNASiKyaBCxWuxh5SKurxGkh1T00eafcH0t4voaQXoDUI4DbEtXM6s6XMAbM+AB0qP8tElJGgZu4fOU6dCpXy/IWT+vRCmthhqTjyZFo0nM3wAO69jJ9VfpocIP19JdeiixJBoC1Z0ECIjJjLFi/oOeGoML/CaIMBN/9wOM15heTPQziDRJz0RAxCM2ggvpqxaot8XGnvyQiEdsxOMNYFqOL3zyQyKErxGPN+aLgTxB+FqE8DXi8aCxdm7HyRxFCF8jHg/MmXM7TuYoQviMELoxz8xqXWUBk+vK0sWCtoywXcDyJQVYxTkuHLhYmrBuATbKaDnAV1OzEgyUBVCrLFvC+DoD8ix2tkFwCE2VH5TqVKIIdmhMYdrbZ+z7DRZJQRxgqoxzxlHSufD2FvGCRvjffCk+bSfEoEXEoBFP91bb0U4VwCxC8IzAMYo4HdtB74jaPUkcRC69SShzUQWzEw4vn58FLJ5J+sD6XlhJyDAv07W2wEIhMdmcYUiFQdFhQLEhPQ2mJZPPgJwQ6woTIJubCifOTxa7GQVeGXoHdNmJgpLdysTPZvLZuLSI7XxJSQtFH4sTl5CoacIQXuPTSIXoJE/QP4L0lfV1xIQOGtXI1APOh0KEraTPZNHHUqfzyA2nbJ9a95jX2OfmOlKlx2Kf6eQRnGM7AYsrrro4SUDHJa63bXwm2UB4wcl0Epo209CjHmOgxDFAtSMslNcOkP4aA4edmkWwoBH5hw3zeRw1DwyABM9EEHuJSQdMN2bfyrgrCjITCHqrFOqwE2UEhsw8VfuTWCW+WvXqe4RLg9Zl4sIwV8Qkzi44CFkALCq+bmAFF+ISY3QwVTMaF5D0g0k/8+WF/2YWUhsKm9lLCk7o9LOZSBDiTx/91GI/waTPfLacdqoeZxGiaMQbIol6vsdhFbAIUTTiDSeCQcd7HFYBixBFI95wYhYcVhI7QRQtQhSNeEMkKY/3OEEULUIUjYDDWc4IFDthFC1iFI2Aw1nOqWI7YRQtYhSNiENQ7c7vcthLWgQpGgGB81wizLy6lzjHWRVtTenTsqKaSEXT6gIhkSQNB84eWcNIvciONjKp8spQk0hmvXhuFAxlAcmBRBYdDatkoZWD41eoVgF3RmU6Wa+Ytp3nyG6DfETlXSay0tKRQECIhjmhhKJkWSHayl0EEkdT9XZH/8wiWUD7TK4CmDaz2D7q/owpklz6TJX4xClN7z4/sypPah94r/6nxLkDcjBFZeM5YbbjLtUiRNOIt6So7GEvpqv8RtmFVsDq0hcpVcsfiLSi65byIVEE4rP+sdraZl19rK24k8DST4GLw9UnweKQiW1ppbSx9xUsHffzDwivlelwntOnpN4wF5G0pFXwpCJVUfyOH1AOFJnd+ID6bIhz6LONzt1AJelXvFnAZXsRLMLICcBilLlXyJReGfvOg/CFy/xL4tRUCvsaH5Jx/Gjq6PFhom0l7BQ3O88/W3CPIRkF7FLzFhCgc5GTZBTatTRxapNqAl7ZxYGNXAEAFRLRPok1vKUUCpfFWd+AbvCL0kkhNde2UgIAxYm0a3ADEsmyoClKPUHRHkoKjLyY4Bg5YoJTPUH6DN2nM/VYJRADqEOT9MCgW4Q7p0+WksC1pJrhBGeuc5gHGkmXzcUZ932g2lLIa8a3Vp3eC6sy6b/gNztpHJsu8tKR+SX7nTXQJW96M8q7ZJ4T8yqwIlIJkhUBe15qDYi4FxLZ4dsUcbyJFkpL2FXkbfDN2UHovipNIthCqVDn5HKmONdEm4d7x0aB1t2kypOwiPEvWHFdEhaTAX491/x1k3t61F8oqwtM5HL4gf3yDu/UX0BnDA4XYHSAs9D9KIbxA/W8QdUD/MXgcxELmSSB4/6TjG/87ZRcwZBxA/MaYr1LFGOKN1+kYa3nTj5Nv6vrLuxn6BhNSb/CxWx9PVfiSvyL9b6T2rZ0ciTKjatSOMLctbL+1lbvTsq6ApcyXTYBf9H3XwxnpE8JweKqeg3tk84UWtXXpJgcuvxbV8F4GunoIxEaPvuLn3Uq72gRTW6EhkMW4nyPsYSIocNE65bkyfbiIu7aCRWVxm4OBqR3WoqvAG0soi8QXnJPS1r+KbbY8k8RsRzktUBclnLPWj34aIR24JYyS0K3tFH7arIkPP6CIThSCCcDuCPFyJNFJLwR1g4Zq7M9Pfl3EQlvhLXP8eKbnZDwFpHwRlg7olDne5z8u4iEN8La5wuZSVcTHaT80aZtaEko6HO6MFgzpXPbtTbgw3QpTgyPSGUX7pAkvVP7k8piZ92LWway2bnsgoAnXuiFxsES/hghYlx256LiX2sgYEnURqXm5DsVlFcfdOESA12Z1JVBilQCmpNJTPxeu0lsICEWg3DIZ3IZhqdEJjmK/Uzen6e0XbXP5O11ca6b8QFtRtyVRQ6BkRAw59sXLP/6maR+vhjz/8/PKfLtSv2Pzq7H+0evnmQGwBhPqXdd5ReaGn0ksVGrr65yEOnmH2cqucNvcGEAqsC3dW66akjhe1NOQsIAkGhnDAzbaQqx0l2ppIQip6gywWBQluI0aHiPYh7fTOVJJS0c1OYk6SnJV1gXoeWeO+HI5zCSM86MWTuxOSyyOYzUDJbEO46q0146sjmM1AwqPZ1s3InNYZHNYaRmELxM1Zt4j9NeOrI5TGwOBBwPKgJ2YnNYZHNYEcbbzu9yYnNYZHMYqRkUpDj16YnNYZHNYaRmwIE/FPzSxbZ02ekOwRNtri4p2ZjkqT1o8nNKm4b/WOFCAHrle9Mfdydp+s4pleTetWpTU9eqtmWaEW9r5nZG3nDfUGHIJo3hZUM0mbCRKq6AP+j4EoosvxduSuH2FLuCIkl6wKyrJKySu7bALGsvxewYhSqZQS3JH1ZV/QHAY0l8VS90Qt19ep24vTZfEOWfqxCBXNJE0S+qumcloVRpROBePGuQUowWq+RJZhi7+19obcArTmF34Pw1b8nklgI5lUlMOq0jPUMszCprAuHnKf4y/cayf7faPqWOlib9wfU7xnArbMfwJk92D86l67pczz9dlz/lMQLjeiO2D7j/t/TQryFYZHlEmFexhZFd1wFtoASLqdRDIbSc9/qBHGlmALIhbjBICse+mSkIu1YKFLvdykw/dkCNlrMml3ggllkUeeDJRDgYRKCRYZB5yNULoUvs2utPQffDCag/vUWorEXOkZFAlAB7PU/j+rtwqyQELsWDChcAoZ6QMrsIv84q8kAiBgabmBvw7sV0TRc2QaRJpAv7Kywej1bGFeBbjUM7kZoskppMpKaXVK2dSE0WSU2mGofjjBu0E6nJIqnJSB2qL2G7U41Di2QjU41DfPPzN5uOfqjQ8iI63gRXw4jcBKlE4Qag+wtHMfOnku8BUAZFkX4uFeioP4UpCrKQHs2LiwtpP28f61TcziJRyFTc7gUIYafqdhYpPabqdld62VDwcqEkRmeGuDxxiMzdX8NTiJ0RlsvxK5nEI9JVNvBP3Qfzhaoq7aeAMGEOlnk0OJqi+kXI2k6F9CxyLkyciyu9uM8n1oVF1oWJV/Ha+afZFukTRtbC2yivp8kWeQ6myk7I257fZSm4XpQBXUncRR/DEld/qguJCgwlYdcLsSGKuCJZczPJxPqDjdoEskcb42SuX5Rd7USjsEijMJIXjK70EzBop8JRFvkOpsJReLFjV/GymHzYtApZMsWYs7tymYPqLmDPgHDDod2HXYexMZEUYWQ4JGj8nRtzmryRFWHNJ++LiTvRIizSIqyV933DiRRhkRRhTfPphbKsy8tqbCBwagvjlqmkNmy+2IglX+KxcSQbEU7+wRYyXTm5SklCXBwfCut9Lkcws0UyhqmozJVfNj0nNoZFNoaJjfGCJtNV4evkGvT2CxQvdwGCnYJHIC4IaQ8q7SUUuaPAHg7tPtuPsnsWOR72reCHnSgeFikeRr7Gm4CLnSgeFike1uYXTTc7UTwsUjzMvomv2IniYZHiYSr3QUbsyTfhZakVQUSJ7DRzajRE8OWrUjNZFbbKqraIWIzCAsAYCBCDSEolEA9HclZbHh42yVniRJn5DEANgFnFtyWFAuNZrGLMlUvImcxUCeF57fHtIxfFTNahvNg7y78gYbe/s5FguQ3HdWkKgoxdiTmmpHITrrD/QbKum7RdKOmS2Xb5SI/2RkNkXwzRifVikfViqlBB/eTj513pXmbeuO3lZoO6w12ZKoBfGSq8Vv7XvHDodCWshhoIzCJKsg5hNtf3xh9L3xtKWKJCf8YKuEnm2YCT0xWlvQA/U23R0bJjdvK10l6s+EBeNOWfsxJMxRNb2LZLbZg55DpccFuwHOzvqtOE+8ocYxdMgBGzP5L5ToKYslGVG1O+vXntB4F3EvbKpNxmz/IgOGBMyaFCJ9GbhC2ZkmQMDps/vatCG2goaR85KGhSEBMy1vOjWg/YNXZlOEyGETmM4VmeS/BDNZz7Iz3DK4uyKNuVh7crXWyYHwokhSOy5HlSMq34XpcUj3U2r58yu41Pmi5WvNDJto9sH8lHxrLEaIXfc+57Mr3EIqeXK2LjSA96jO64VJmWqvY2n09LVSRPGZlQiT7d8SYnpzOyp0zFU672kg3iZUaGchE6aZhnhAEtY54RyIm6Bq6gR1iD21aAZPS9j4U1QkpbtH+vOJAJQ1VQFqtklc4rbJmo34BDMOwhOVhG/V0XMrFUilFerqQNWdp6kCBVgFubf0qfi/jfmVXLVNDm58PQhc/XzJEW6aJRvFgsuI377NyHdt2H6T6UC4CbWdHZxzeIyzKpZIlvdPwG45fjv9kSv7x8BmDQ1bdyRMvC75q7IugMhk4aF4R0gaByikREWpvZ/KJ7aqeyIxZpZqayIy/6jbpKFbsqrwpxnltyqzM9x+qKMAoCUyeQzvsPy/Fe1lmWAkeMrzw0KS2SyUxFTF4KbuiqENV9Oo69OTwgk8GXqX0GyQ1jT/OIwwCxh94lZZJXk6mNoNZl1Z+e2no9GhpX/u4Vo/qxYpQub+z3XvpzHw7pLpW9BxQ6mweZAyMol2Js1GFhkYB76WesrQAw2bPfJYPDcFr5Iz3O+rc9/YkdZ5EdZ6S6Za4gx1c+7ekjPc66qlPVM73bTvw4i/w487Isb+P2ZGAjP85UluVt/pz4cRb5cSZ+3NVfdmW8THwX6BOC4uSu/VmB1ON0gkJi8iqb4C2FhUKwO66I+cDCIuZD6f/CwjCKZwLLzuUQ2a0hvZ5LwNp11OXHfhKC+soAJgCZ96HnBR9vGq1N/1LjyE4kPoskPiMj7zWacyLxWSTxmUh8F7aBJwQ+L5clOvOwzNteKOKIwJmRfwMim8KKnbxq7IR/UColIXtK0/xoWjQI40sZWDsR+ywS+2x8KwNrJ2KfRWKfidj3QoO1cZqjkYFnYuC90GDtJCRvkRdnw77QYG2cpmgkspmIbC80WDsx2Swy2UxMthcarJ2YbBaZbDbmFxqsnZhsFplsNq8vNFg7Sa5bJHnZ/EZh1dV/OYXVIrnL5jcKq53IXRbJXTa/UVjtJNpukY1l8xuFVVf/GQqrRe6VzW8UVl39b6OwWmR5mXTlgZ8+ruvT/jGjGsljNr/F1k7cMYvcMZvfqKx24o5Z5I4ZiWAZuKdzD50sQCSP9ev6Ypn7dbAAPVKw+pW+WOZ+omD1SMHq5FO9WeZ+omD1SMHqIlm9WOZ+HeZvjxSeLgpPRvmeQ6f2E4enRw5Pv9oX895Pgt898lv6ZV/Mez/xW3rkt/SrfzHv/cRv6ZHf0q/xxbzr6r/cvPfIkOmku7yZ935iyPTIkOmku7yZ935iyPTIkOmku7yZd139Z8x7j8SbThbNm3nX1f82894jxaeTr5OgXnjapOgyd6obM4KakipKBEj1eccPTj4D7PfmHoZ9iDX+aFSc/OmLJl9Pp6kfOS09fcsO95PseI/0i54Uquvn7F5Pp7kfcdudIOw3hb5+wm33iNvuaXzZjfaTCniP2OeepnPiSwciKd6D85p0hv5BMBC9/7lIIFGFNqzuF0kwDIsjgEXkevZyzECMsepe8Yh+UjWxi7VmGNrHWC78DYKQuB3iHGQuYHqRDoAfq4qeeXlP8F0FdajVyzgjc5N4n/whlJ6oMLa3Zo/lI4suCgtxW2x0sVW4MCFfyYantmo7Y9OtqD43xQoVZyVKL3KdVAAUSOjkDI3KaXoBdiwuC+QSVBYaEFzVNcRjs8LNyF/pdln8lov8o0zCQuLV6d2RSSYAT5i8AULy+NTMsj58GAg/LNeY8VhlPnJzygu1LKayIYvyQnYzS/glFATKbEqbTq2iUSn8XTXntyQmg9XQT2GbwNQSqSWVRWpBaK2m4bdTIUR8bxU9pPdHegYYU5UpBnR1JcUChkKFENG8llajGmkhPBIysH9M3xbgLPJXoBprhC0m5KE1qKg4y/wLItp6C0xiNQphM+ZpKLCcvcqr6QukRXhBRWrjIEPbVbUUKEzVUEyrECKKvqrSIJrpVQVR66Qm7x7If12MNCqfApZg16BFFRh2Yy3T2TX4wmLXwOUYfFs0YJBXhPceHIP426H7IUDOzqvkSK/fTc4r0LfZgJIX8QVTVvQUnuvZB9Icq6FAy6OjCsHP+lKAMmqseuakMJ7rwxCTbiwwf7omc3yoA3oRAZn5W35DrrlJRSdJKNMrgjOW2KPIRqXkY4CyCOuLJ0w8fcCkoqMsuZs4EBrcmCTDg6By2mYlpdr9dVJq6ij6AsmHckpMlzH3yvcplELe8yql3R8pX3l1Q/aWf1KmcQFzNWVZF+NZ2z9lw4ErT1ntQgIxa2TidTTXca7vt/UpzqeSyaW7si2wd6lw3ME8piLbibsWjiP+WeGf8W3AIl9n5xoiqXKkZSRRKqt5snh85X1ZHrcqyQnfomqk4sHt2ndoaXdY84kG2WL1OBWMSaeCv4BcmHczspLeGuO44r1UbJSl4Pv9pXvZD+ttd04nb4qjrYtNiJuJKcY/m7P6YU55mZsskw8+aE7qvQm3JoujwB8oX2qfnGi7Ma4yyCfg7RUcijnYcGhugXLmC6MKcM60LfDwMsG2yEXkzOnLk5w8+qWybrwVDayfVe/jsbSdflZCArzD/Syy25DZzFo3dJbT3A/vp9Hosgl2P8zud+TXQY/mbHb/4H7YzbzUcFUn9PthNJcYTVlLlp8t91nCpvmIfr9av5/W76f13Y2iHWIN1TxQc8f9ZuN+2LhfjSPeD++HjfthNJpcOIWP98O7H+f+aPN+2LwfJjopr9f9Hdz24eh+1Oz39XGf3Y8q13pUuXYnFtoa5F3Lnqe5XPX+o7buWi67z/b7t/u1ynU/S0sEf5DSfTbfh+U+vJ+W2n1o+8FprYK50BT4feeafCXv8VHy/bS8Xy3fD8v3w/L9sHy/Wu734bgP71cr98PK/bByv1q5n8bpzS4v98PK/bByP6zcDyv3w+r9sHp/tHo/rN4Pq/eryUyyx+r9tHp/tTp256l8N/aGIhbD7udym5DS7qfdJqS0+2kyIbxvu5/W+n5Eu9/tNiHlNiHlNiHF7qfdNqTY/TS7e/K2IYU2hD2thZbvbvfDbhNS+v2wnncb5X3B2S39fthtQsptQuSX6oX7PSBpQzRix/2024aU24aU24aU24aU24YU2RDed9yDZNwdedsQX2x16E97bNVigCR/Qab7RS4t/RJbHgrh4v0UcTgRRpRYHJT7sbGJz4yU1J6/ScTpqhCUCumas4oIlyzEj+Ljg6PTAKqRlBrUh6UVd7lQglFEKRcCLEePMd4eaa5dBZ9ehN50dUWd72CzwKvmTMHCoITAq1hGSGb5Aa0MLRK0QoJvSPgPBlE697VsZXsUEeiRDtpVUupF+01XSYtJ2am2ddWAmdl5Oij9SGRMJdKDxNyx4GjgL6osBGM/qhVZNzYnLxEUKvlw9lMbhFpOCK0LAoFIhhC+JEtOEd2LA9jI56JxomCYEd+FreFUAfBK7kxCkEoAH2Ai6d0QHNRpDsH4lzx+9r2P/lSoMohzENPCbPYkF0zIYaF5rqotBdBaWQ5jYp8lAYSA00mdfwYZlzRJ9TJIcSSWgGedyuI1pTnn6n3Y7kOJSz1mYqS5dnI832TydJWuY+2MjtBvvDwwwdUOa49WuD4VFoGbzAUJK33Zu/PuWlJcX8oKgsC3FZ0LETUS1rC5TL7LlQIGBCV5w+RBEBBjCM+DoIdcE5DWFL9JjnrkB6YzgXoy2oaZtmGkgicfcDBb2m1x2yReY3E2IoE2AhFWbhfI31vgSNihxMWq4cuaemYFT1DSRPst8MzkF1OfkWtaoerH8OZlUu9gTuSmCi0j/sv0wAc8RjlqoPbJDSrsdW1cpo9zhDi4Y5xrvPOaQgKQxeNKi4oRWhsLudvsV0RAtA1KyeMehfMDK/P4aA+FTVWlN4XvUPlMqI9UxRpgAbhqwB7N/TP6goDFtkurJcBzWT9T9ANGzdxPbB7qQHTFqjYywntgD+fBDPgJErG5HCWcqGbR6dQ1gO3kwozmUYrOivKrgzVnG6MUIg+YI0ERDpHyB15scFUH2XrQuYWEnJQ/cI64L2DOqd+mbpciEj6nghOQ/pr7U0jlg79r7kwrXoHumWM1dMchTMEHdaRHBlrra1fNIa+dQ8XElwfO32pRx9NT5UtUhA/XTheRP3q6hGVr9wrPKXWK9GH7k/rWWEmTH46Ke6vd7ZMvjnW8Ur7G3IfaOjCmrj/DgE51ife4h4Y+yEUTt/NwPThLQAaQ5Fw5KPww+QfIlbsHPyzrvpUzHr2TK7cPfsjXBMy2qjk6HPd9+TTMzkr74IfpPsz3YbkP63q3mjbuu+5OzZhREqvJCh76WXYUVABqvvxb5EqDimGbK7cP7QHS7JGT31Vj8UWjVFfJZYa2E2dnkwFveDhtCeoha5+XZZxHdSkliKuprlNqHpiuTcYZY47I9LT53ZD/4s6ew5mTaJligiB5ra3oNddG2t96dY9Z0zFI2nmvkHUdS3Upd7fE0Ix21aVr2V8EcFz1Ji35JVh9ml/qRMhMI8JBM4WCYTK/aJPML+vKSwkHqyj9c1awlsDStVwKPFbmF+IKMr89j2V+5xZYQoFkdWmfTuO4KN+17IQMMJ4hA8wy81JTgviy9udcNDXWuxve7mbXWnazizkjs4vogSsoudUFiFhWF2NdVhe/ctWkPN3s4qrMriFdVsVkT25tm0tKYEkaTjbJbmthPz0O3LvbVdTBkZxYmsuuwrjJrqLlsqvwRGVXkdiTXcU52VXqaQ7vQplVfKZZpcqW3ZjyKo2SQW5J4kTCTidfRtxwohaiW0vciCZSd3JjiG/vxhDioKlrePe+LCBd56srpLbsG0eM7Jtcayk09b27Q7vc1HUZusw6FG68+tzGCy104+WH5t3pxssPJcW0DJaO0j7K+6isI+WxHjUtepTp6Cq6+iI4rKt1lXlT5ooQTMoDTCf4gEqpCd7dewcvLbsqHuk//AuKiok40qpPkmaqtweJwOwIYSS0MBAzo+ZO7GjZkfUcgKoYnsdyt6FOwS+pIZhEhgIWNGsrhVhWrhQCLQ/9kx6VR7rqyL7oH+vqkkXN6oxdF28Vsh9tbXPkdLLSmzY5tRcvZO+5NvTN6jlwtrw84TXcMwQZqlA8FoBYKX8DkV1Y7hAyACQssB6b9HdBMLqWdoBJZrEuIUCoTGlWDwmgZcqjCajP6igsW1c5Sf0Jg+BcUKvpoWSW8ku4e2Glv6y2POpN96jI0imv8qaMrKvNxwhlhprvM6FesYdgopCvzcXuKFtgyMjHkmIPo1F7XA7/i0yRIn4AdYKzQUbx4Ql3HrGV8oO4l/pWJUDZj0aBeF2c1AVRO66xCBt5XOuwUJsIP2WQPf9Y9XBm4ZYoV9ZFo+aJFICmPUMJMQNOeZk3VWBd5bSo9uGcWF2XWQGPvWuu0QIZvsQChElyLBK0cjmWoS5EBxcfjNhPEaIhhyIvZpcmNAKqKqWZRA7LctklwQWGCZWMjKXikgtYMeajYplcRvC7Sb1LBL6Q1/MjqmBRizFRorkxBdc4NGG2kbXUD3LiIQ1opmp4USx+8hvQCevrLNKNUAt57qJjPEsyPi+yurrKfqO3wNgFOoaqyNOH8ZKArR4tkUHF5pc8v8KwD4l+6HNOO1L4GEepGFNaBdLWq+zNvSTqVitmMv1rwQ2aKirZ3KmZ2w6zmYqTgKnBOAkYbx4nGasWKpK/CpRQjZwiM0jqOvs0DSfdgccxOKogXCW1M+yrh2vrFA+UkA54UasHZA8acQyxHTKZTQnOxEwwdzT+V5DfAYG275gKKKJaGqjrdrElZFwpkEIFt1zNb8ZVwPNiJNL9UAOmSny1P/zwqMLUpcL0ooqsqyR5Abikp1ZfOwtBRlqjuSIiqc9qlbN4dAxxE31VyClqHYDh9ggBJM8oXEcNcgaH0pYDxl7DXU84+DY92qavCXqtviZESqR7U1YV27o/JtjuXQS36l9rrB1q5kLk34j5av5x51aUax135vou3HR2KjMNJj9dIQ8FeUV4zvsTDTJ8VDBG/kv1FvsnAu6FnwhKTs9PFCOtErl6EXvWVf8yfX2Z/kuRXHHKvhSrsL3Q2swCwvwmcIbl1TRItLH/sXVW/2ODpb6G7ZJXQwAHvRowsuTVGIpkUM8vX0slkGVzPYhIhJJHOeG18rtgpTMnN65upbs8VM8F81xOD0yMrzpcouX/QE4q16Ji3Y+ujOHgUt41r3WxuVaUCkJM9qhcN5F+sw924jRplIXT1MK87FRL0zs0U95WlUN8tOflNyLgKHHrttWPYZuoFA3Vd4WGKiDefFmANnruvpeg+8KHanVhN1/8tJXghKqiu0AOsIfhSBMNAO8NQCp+okyh/Kr1Ka2Ry4p0GNQomP3wvKMMVKfi0ptSdS8rHtuzfaSl3UVt7d0dcGRqqU+dF6ubWC9Vbi6CZEmNX0O2wdsgJQsCmupYvC+tSK17AccRe4frhJbyUby3EUyQ1jRUjRmSocAs9YexN3cPs6iCkC5qUWdd6OFFuQdJX/CbpDSNpkNONzOoLK+qeLBLDUZIm2MC9oEsTXv48VHFqlOT6k11WldVFklllHrpUrvrcziXH7xecfmHYiZ9lUKwpU9GWvyllXUp33G1lGbbXBJ4TiLAzpnD/2IRZTlaZJsz8jeXbHRjXY0iLG3uO2rsm9ThutAIaipsQesypcA3XA0aiXUFK4AMkzzeZR61wBn6xwxVlLauURyvLNeAdbelBtA/SsKOvEIWnesL79pd9Rm6mH0xtquk1IGP4/jJRSELnZNcHkmAXlZddEBkZip9Rt7X1Oy29J1RvNGKv4rknbFj6TQkyKxjT5PI+Ja+HrFmq8PF+2fOjDkXfCauUNw1qW4H/lQhCMDPaHGweE9JHFDGWb0mDT68qUT4MqWd+7qZqZuHy+wxTCyvBTsGVUNRXdO8tOezerE+dJR7FFjrVEt70wDW1S2+zUG5MnV1OvwUOaShsLUXbc9r/bvKApOOvvZWsOXSLeGmgGaFe1tO9QXcVAUaGRgygLNeaO2uZvORxTCACRewnBOqS7iTuNyUPpUu0O3ksRANz0WU5UglujsqtZSToO9aRAH/TBc3DqhPnJJU/pUK4t3h3lTHfiM6nqpvud2TwQrj62xW1o5rN2bbL7iVfJb60FLpUdOuU6DurE2ia+yb6XIH2i/SzNvKpK01tiZfCrJviIHg1ecDUiFN1WhY9XnotPCj1bHclzKW+2h1BWUyNdolOIxMbvUjLaTQOvdFE2t4oTQvbQCj+XJVXAWhb0jaIORB1Vmgi1C4EmVWq2O0AQOqcqtEb7DyXn5oOnz0bAwtULfvTTBWVzW7XXkOgRj5f6hBV9xzQLlheBNLwIaBZrm3rukPDsZyBGGh+adMOssRHGsxRS8qvIVNsDuCwO/KEVyyJegn77FfKeTlVgMJMbfPN3cKGUN9eXoYye7ePUkJUc6wU0DwTRRXV1UcYRmO5gUWMCfl9VbzgdZdywjih33F/EZaMb/lHAOqqz4BZNFDfla9TxD+QHsKl1f1Tk4r9gfFZe4lWZnhcnhAX12S2wr4ATjtPYKMofdIfdC+e1RQ7NRDfJP41VUp+Ayfe3nrihMFQugKvAaJOQFrKBALUD9e7AMpVwk8lbKER0fiq4ETP11vFLiOtSNe0AFXCtFbtoe+S49yjr2mL3LDutpcL0g40uGa6iwVwwVqhd3a0lShSAO/OBZMxE7Icawq2+GdYXOJDc1dK4VZHFUWgWddFPRIdNqBJ04bmqvczWgexYBHr7UFSmzu+Yy2dgXXwnvgNbxSStnlb1Dhkmk/CmCrAEJdgA/43Urx9+JZD1TfFOodkUYfeix1nb0oyNSQhgo5Xa9yq7cUs4Ubh/BWFuQE1/N0SWCPYrDkFRcpoK49/TCGUrHYknj4WtAErTWolZDc1YAJuqQjz3CHggBTGUovM1PlxEwlKPfJviqzVcom+dm5z+bLW5WFm56HgRa32vWLnrQu0ocElsYl/KUCXbNqIyFIWtXGITnptPRAwbpRZKwNd6szjfISU5J3kszDlsVW2JI74SZl6erjZhJXxo3Q1dx3znnJSFMnUNEgKLQxGIRoLJ1inZIIU3LxaADjJB6NNbd06S533yaBLaLIMAARvXk0X44NUIbygZFklQ+MNkkVus+lBd0JNOPONid3VgklYF124IE0JHBneZ+Dfmj3/TG8z8SSi/I+UQhV3meXsvNSde6cqtZd1cj9UtZNdd3rh5Zqj1qqvX6TddZV7v3N1xS3pC68pQpY2PlzwWsMflH41X6ZTy0beF/IC/2WjIP/LOFmoFduQyotvEsK1ZmoOb1fY5WCrBKUVfl5kiYZfypdh4+3jrt4SrlmQEeOvLq65SoB/dnCKCqGCSvglV1N+3C5dL111/lzHiJj9ZPkQyz86KLKBYGYZQmfEIxrBLbkSnxg7Q+HKQrPdqrI5lrPui5+uXi9Pan8tIX2Q3wQJErL5i/ElApdATpKjl3j+2TujV2WKOt1pMDN18lK4dKiafaqSmgnyIKxBUbH4J7ZD/JPgLfg6PGKcZNElduM+Mb5FW3VMsVWFWl88W9IYr1cKQyizeXTxfEHD4lLe21rncYbVRacEE8E34c2uKnGLS05//oitbW6DBPDn4X1dui2FMqvMzhXsQN5vFzcStQvsgG6KH4uAj4IyFFp/4Cp/bCDBmoUPZ4ZnWwp8HIDACbvw7c4UTijBm+noC5pP0ce6EmEt0cR3i4RXiSvYUojpLGd2NdRO7dTB/cV7sqrHB0I9CmrmKqLzV3jV1JNcW45SGntoQn9VEDuWr4x8Ugq02IrN0MxpGMibXr43KNvKDbg7u3Kw2BTK+gqznXuXZBdkwODHY6q1KAdU9hZlByi/BIDzHJgNOiVYa9yNlDYrcnDqD9pbeQmC8HwlkIn1Ko02qOro6tAteBXBGrbtSeYuvEgTBa+sysaJwTBYt3S8VkVSqF36VXhPCwHl9bM10yB6q6FYEpElWZ29xQ8LTtwiTXfLtF2V1aGEeFfYLw/gKOIFMu9TVhNqeqI5Lzzb82hSfDEBEjiC7a6sLUCBiFESmgSqa70edEK93nxu40HVYyvLGBoZaySWJ66HGLcSjEWycoOR/XINYZepaAqJL9fw7FBtVzuq1UGroBMEq4Icbemc01RGWC4HFaEMj0iriLLILca4XxhOBFYdwhRWeBMQMpMUFMHZOKtBRyC6uIUmBgFfege48WE9EFDhJtEgQMxOa1vBCUHsJic+qIqxYcJKeIiZpCDKfkDISj5A8EmOQ8Em8RTHSnER7ScFrDNffW+fXWYT3fWKck5HYQ1F4ISfekISsLQLqKaMU4cQYk3c4QRnuYAItaPFBSSpVgqlSRJGxOayBh7urRbygtN5IeMFqW60EQ6TKsOoAMZ+eC6X9OBjFxj07hPsrm9LxyjEVapHlEqNe/DXUwwVw9YPRypqBzeKQT+im5sci4dBkBUQTL3H6dAhQiNCMFdf4T2UEFxr7lkZRVdGktnGRLIngeta4yWNNeiTk5nH8WLi/PjNRpUDzEAYs44Fioa8HsB9+TwK9Yhf7x1dB8pIf4Kv7rFzoXf0CZGwabclrzywhlhl6QlBoEhrzDRVwlRGwtohRC1SzGiSCids5LLiqaOJWEKgAGAVs0lw5UB3VEX7bYkOs0lgX1CbK/CLs0eWKComN6b+5/9DLRqK0GzvWdWYO2q6KO4s6qywBQW1ehCkJuSAJ0AD5ZFM8qSXrbz2KxSz4WNiVHsXxEJw+Hch+3S4eM1oo/Z5GMiQXHQevTLrCWTPHx0OWRVayx9mJ86+u/wUVu7GTFe8L53+Eha4MhX/gokMbnKIj/6WC3n9V2GCGXFM525UsOKsCTAMnj4eM3obbb+DfzSVuiaiSvmzEr3Qn3N+SEQZaiOsFIRqVR9ZBN96ptA0UOm5yYQAR/KZxcBYxiIUZh7i1vDy/EKU2mRNnJZgSTG6Mw1s4X3nTtFsZZU/L54aao1bdquDAVlB+2o81J7gJWXP0Y1IxVaatUDSgDje6lAFCvgOoe0uBAyaQlPA3Itx6yltqr6XTvQWaVqyR5BNELoCykLMCRxNakF6E6OyUh0QGyphCfFIBimUMSJsFqPM425HD4mGIWgYQCe0h5sDV0+P6t8Nx7hWQ9gGxypketGahRupVUBHsAkyYI/Y0qxSkBv4xvChlfz4lrwxQ0kOTpPK5iU+i+UFR1wuMkL9Psbb5V/LFcfTawaLGRt+QWuuiFVKrQFQNEUg62/YqoSZXq9TO78A0mVFVR6hVThhaYPGIGmWLcvrZqPbTk86aePtEYHkVQaEx3P0pho2f6AUv0GTV3ejl/wKY8ycpOij89QjD4+QVX/ISQV8vRNH79QEsQ//myPrGas79BZrOEVvMOrbEKZjojAfFIuq27wTtobL4R2hBGeKyhodQFKkDf0TI1/IIQZZFLnAkdhJOqz4Hsr1ZhY6ZMeA4Wt+QTjNkELqvWVX2RY0ROZea4vQCUfon4JHvZP4IJXzHfBH7kYFLK2fQ4uX4L0FKbRCPK9bK+6iZ4fa4oTrKJaknM81+K4m2aBi9dssl0rmzx8jtlakzM10X1jM1ZZY+Vw55paNFsCtqWdTt4g8dRXDnljflBnUJlj7Ln0ufCpPHWMTQ93x3V9OVDQqxMqp39DFFdV5hihUc8c9wW/At1AnxN19RjCZaRdPsLFqPNQcfu8Esc0x/qw/FhKHAOO54njmTY0sdy4N/qV3eOqee2lkU7zWdQekaxYcKSzKMdL3ljVRrigrryxp42LymyJd6C08Uri5bqA1Hmxc8kyZdoYmwOPWKSV4qzbytnKZWEtZKoY+z6linHkqeLuc6NK30a5YqrRea647x5CHZ6VKyZXTOrRZJApQTzazhBz06MMsQ5Nh48+jDEIFgp5zRB7GZNn5vNirYs783nJxCX3wel7iAFhv3Og/+HU5yHhKXuQdq6dVSAUHYeo0X899xlrpXSWPnnNBtvC+JFd8CsEfLEYgnYjNnz8sPKSKt86OBzRx7UiMu+uYjfr9evO/KI6h+9Gxp6hBEiyMGa21RN5QTMyKahrEzLGev9WbL2/lQdILFZ66SyO8Zr7tXqjRX3DWRfzpZXib9tvEGhyggb+9Yz/SvIiZiGWBXBQPjOuxUIqTMPxdQqiCI+Gx90TC3K8JnmtLYtNapJHPARNxm5pVbFXMee5SmjUpo/bOh1ybeRVBBsl26Z7IgqWzQ0XQthNrlObzddecOYUGYOAnBK/iZRqGkrmgLfglSraOPnFoxJaEsYCvbWxfHY6Ftn85daSsOJb2BzL8QLHTfGt0ao77T3LBVMIST4Y4HUKXI2yBNS6mzFxs3w8XruqTCqeD4aI5NytX6ijO/o0b1UsZukUcuJZhZwAlvSUMBNVctDJzFWcqY4dZ+piDF2usuDuGmLAHlFCr3pSWF55Un6+r6ywn7X7LCkTttPCfnZVO/G0MFqWVQCIuoAMba9Dcdmelibuk833yeeaSrr827eTZy/cS/JBuJDacPaEbxoKAMG8zj+8vuXrOYmqr2UMAYMs2KmtSAnM8PIEi+6LNJt7gtXhxHCpVF4SUV98uMwlwi0TvQchh+dtjuhOVCXBHmXWeiyI01mdJZN5eeykvnJyJS1pBTBC6X+v5FynIKAXRFIpdglNJkof8P2uvWG+5oocIaao3sJWSH0ERoCCaPD0PRlrKxgBnAhXZt5PRXKQ9FZ/YT9JNs4PAg5IN2UmfgXEZrp6Fi+R5n1oLJRalX4YnzQdsry9g67YDDdCOGCqnGE3u+7DdB/m+7Do8PEN4g6URWhytXP5hW6nHFcsXNNZhSZT4eCUebQFs2oU8lgw6+G12xjkQnk4Y/UM2CmlEFFS52Ke0jM6qie3IENz5yK5B2mstomO01oE/RmmJb0gB5KRKgznyUgMPB+4k0pn/EFlEJh5yfxcUeNWon9T/enXfyYtae2clowFdXpPX9OS/SQZHovddFaTeU9L9pNmeKxA01WB5i0teSpB02MJms5yMq9pSV4tyeGHtAEIO2nqrywk0zIUWWBls+75Q490zEXK72WZAWIfnUO5OKjYBMkg3OhephGUt7xsLcNeX1ubQAf14og4F2y5pLhTt+QOxN2pucL2aXmFo1QlC91dcYe7NSnmkJkkkYV+E3/7Cok1JQK6qwitoIai+F2oF5fZQcdm4HZg3bpkdjJz/Fm23w/bfWjrUKuowtxTvu/ja0ZHjXV9XjOfvf3NfP7NfP7NfP7vyHzGGl+927fMZ7d/i8xnrErWe/+W+ez93yzzGSuq9T6+Zj77+B+Z+Yzl0nqfXzOfuvz/XeYzlnTr4yvtf1x/M59/M5//hcxnLPvXx1dtgZH+Zj7/jTKfsbJiH19lC0b+r2Q+/5X5zktKAo/M5yLL/Wcyn8d05/89x0l3h/nQ/2S6M9ag7Cwo+ZruHOVvuvOfTXfGAp+d1Tpf0p2j/k13HtKdscBpH+1bunO0/wXpzliwtbP66mu6c9i/WbozFpvtrBz7mu4c/X9KujNWuO1jfEt3jvE33fk33fnfme6M5ZT7mF/TnSNC2f43pDtjvejO4s/v6U5d/pvu/FemO2O97c7S1+/pznnKncVy2Z21rzO2iMd0p1fTJslx0pZ41VJf5bAvw8fyqqbIW6qeBXdjqq3MZKQxGsLNlspcZGhjdRSCeLQxOv0qx/2SmJzlP5WYtHNiMpbv7irf/ZqYnKcaoLHQdleh7dfE5DwVAY31rzurTr8mJuepBmgsVN1Zdvo1McmrfxOT/1MTk7FmeGcB8NfE5Bx/E5N/E5N/E5P/OxKTM7qvc35LTM75b5GYnMEfHdf1JTGpq/9GiUm90B/vn74lJnX5f1xiUs364zXyt8SkX/7/LTGpZv/xmuVLYlJXt0aRFqvmeuSuYjFz8lwCvX9+T/M0UV5pIlZo5n4puSB5WZ4b5YolSM5k0hI99xzS2NLkaXtue9NFCV36a6iM7OmktCt4977EydFo+WtXWemkVlcWKS9NSHw91YGCCJIkySmdJElWZL1cRm4pkvdVuq2ioa5InveYrKuKm/pgZZMqwxrSu97JRt7B1cn7rvi2pRCRk1ra5Nm2NvnYSUXc1YPjeMuVVxq3NjkHCZ81H+WC9Kn/GBn1SypRVxUcA6jTPHyvCZ2yJziSj4TZTTrlBJoqwTGrG7mUlhTX3KUrWBdTcqxtybWxOrAiNWN942JL7gSBfM9w2PLOkYvzZIetdQEF1j2xMVeSGeWNu8YCKhLJp27zTk6ZviK+TNmq5aks1XIKPLquem9bwBwerwuYp50qpBioBMyRdPbviKctAfPklVH9B57vqPuTMjCjVCGUWPhJsQTEBVnf6I9P2r7kB3X1b37wv5YfVO/90dnfxHV19W9+8J/LD6rH//hA7zK6uvY3P/jowx778Jtgrq7+m+cH9ZJ/9Mk3cVxd/TfKD+qFfr9/+iaFq6v/E/KDaskfDf+meaurf/ODf/OD/135QY3APwZs/pYf1OX/ZflBvfQfnVS+5Qf98t/84L8wP6g+/eMb1G/5QV1+3CTuXpLEZNM5P6jLMJgwiQyCor4zq6wOFbKl88mwK0wgpj/nW3HFcHz6ktPHQ9ZZuOtEQU3WP2mQd0VhXJAsrx9MElZ0qTN5qgoKwTiDGB1LZ8OJ5ghi6VQV2fK6uHgRoqnxTVm0u45PN964K7mRpic36vywYCtgrozPJ0aE2D5Ol7qrmPMGLEuEP7hm8+gKAnKJpT6vaV5RptzFc4GPVpoBgyIPf3MtKMynXr6PT9ybsKiph76xyPJhY1UxR7ArsaD0hbTsWN2VuUpemEHsU25PmgLOk8VqLtaPg/W4qN+dW/cmZyYLMD8EQmdggB3Hr9j1NCRaBv8CocS5nqv1jqEE3sVWqV5eZeAI4bRyNR8nysOgmwurpzJU51XSEqve6H0Lw0Upr2I3KG5RmCTBr1U/PWFNpROQqS5f1v24iGFXq0K+qZuvs1iAVMgX/af4Pwo3KPyPkaNVOCFYyog+gOYq9ItPXjku+bccmAhw1Lbv4r0L/3MNCK3lEIev/G7oUxUJ5l3m6ufKws1I7SiLhKHX1AdX/rS6vmBjfgqFuhr7AElW5Zg4N1TFvScvJ4z8itJNsFxWsveQSgzDnpreaKoYqRd0r2uCGvueoR09F0V/qr5+8go/+I5GBwHjxzQHUUpDJaCxs+1zPY3lydGzXeMgf7qGQeqfnvTiRqOsF5djwxmszkDsls1D96mOPJoirwNy3djZqAp75yBect36HH2oKeUzLn2izPCIPqCyakhVjT68+yD0rr8d+mwIUvpd5sq+seAo/2JOrzdfvECRBudsnO8oQmSKyebPVFehfn1fnuzs1TvNi9D3xuKa+giTLSgMjq6pP+VDwa29aLgKN34yw4t+jg7py9FDfI4BA3QnFczb/oFSfCwHzkRaUlxRniQ3T9V7PCWfPTwrC8ffkmcCH7v6ZPCqz+iGBNfz4iqZkmaLynBNDYaUlC5lfT1TAXbEMUzGHz+VHeSjZLoR90u0OfiYzFR4CzPbTeuSr/2wnNTtSE7TbsNZVMZTKu55rRUp85sypp6VIe4MqfKvKrcPfEnWs27Nv2bKbe472PTpkHLv+8/U+aw7ppdgwzh5mdku7PyMbipsI99HxcH4SWQo2aWl2H12rvaWugeAzKYOW3armlBfyJteOMTZssKRjbJ9qcx7seJ8RLonVZ/9ONv6ukPlpOMLKQnM9jZVDUdAQBsZPripf+k9VbcpydJ+CZMZ4KHMT+LiWNcT+j3wZB501jTDsAXhJGJHdhohLIDIo66nae6z5XMuW5cTPRYW30h5fde1VZfSW/f5lTWOJRXvSAAc9f1Xu3dzGtOHac6aPTzk0GIKNFdzm5SzNu7Gw7F/a7s1mXsuNjfT5qJmRc773bNWbj+ksUVgVcXW9bTR9x3G2Ifzbtlc04oBXI2yXOQU8Sz9HgbOhaVAur6kcV+fq7mlpn1WtlqHu5+KAwkQR8v7pPAWndG1vl6n9PsJfXdpGbYOleRPiu1fvpSwhLB/1cqPVlQ8w1+8lv22te4+qPIluAVlC/1QfsUnV/lMPEr7KO+jso/qPmJaFSGOKmeUJ2l1kHqsejue3E8Z+ykcTpnsNdpwP9zPGfs5Mi082o/RJ+fRuP947j5QxUA2Y+4PVud+n7mfM/dzuGjww2CtXSf3g+a477Pep13XPkr7KO+jso/qPmqrve2yfXJ/snaNfXI/Je2nKM4zWPxi9xrCxOt6vU+2fXI/J93PSfs52zrllveD8n4dX3fxNzQnlTVq8/2gvB+U94Ny30f7OXm/j1t9+vHJq0/nVna/lf0+pd6/3I8p+zFlP6aM+4f7OXW/Tt2vU+/XkQsqrc79fWq7r9t9uCetu6v86X5Q2w9qe7S1tt+n3Q9q+0Ftv0/b79P2+7T9lLYtgzBYfrhfyPZjrNyX92NsP8b2Y+weBrYNZpPJZSv7/aCe7rP7Sf1+oW0PWt9P2uag9f1C2xq0bQ3atgZt7NcZ+yFjm7QmY6DD/ZRlJx/hgJhfS/YOxdVFRdeTYwcxtVRcpjngLrMOKdC59afu6jJksqpaDoo/0VOsLEjjhXNoYxmN/pGoEdAlh2RJigmnJGEuwlhPUZB+ioLEjEuSejEgLUA6z3iTg7LUr5PrJqyeAj/hhAbW5cdNYpw/E1kPS3KMx+RD+ZRfJ9dNiBaCRTjf5IAc/3Vy3STrJuciSrr8uEmME+aim5xLGeny4yYx0JWJ1U5IYo6fVuI9TnGuHONcmXEumLRzQw5Q7V8n100o+wF/6hj1zAes9q+T6yb9G2hclx83iQM2S6jiKp/WkeuKNzkN2BwHbCZYEHbtOHXyacDmOGCLBizyYqeOLacBW+KALRqwo5xbUk4DNtaXH0XoMcQET1+nnAZsrKw+impaYMAeKoCPchqwsYr4UBVxYBCAnH7c4zRgY5HsURSYvd769TRgYy3iwSq3AP39THvc4TRaY1ncwWquXKvPzTiN1lgBdrDUKZ2E801OozWWRx3FR+uLKSmn0Rorio7qo/Vcd2zU02iNZTxH1WhNL5+mnkZrLNE4qswrUKTt57oeNzmN1ljeb6i8HxI+55ucRmusljdULa+9jbR6Gq6xZt1ghTdGk040llFPwzVWhRsq+4YM6vl1TiM2Vl8bVSN2Xi83OY3YWE5tsDQa9/RHW3IqpzZiObVR57cyhLosdJqllUnMjnZFYEeOFdknSkCl6WUIkUFQGULku+lY2Y8xx0h87y7hJzCvVyTkllgVCTPhx6xI+EQtxpJuo13fChL65eKKHIKkDIctDkRHUZCQ8F2+Gthb7jMC18MQJgK3qkiIf+UzNsrLsBQkoqV8NchfruKEjcwSZYYB2FdxQsCYvTih8ZDFCRnCUXXC1h454Fh/bqjCHBCIxzHUFtw6ETRK4pPDF4bgC67AYp6QFKQp11Wq10uo9lE9aQR5kqSK9llDACiplRUmTFdZYduZlV6ZWQEOqO5qnEvgpc1PE9ILiP0q7L7GDLKrjTHuxKQ9ccE/2PYpT1+71yhFDFZCQJPVFcWlygw6l59S/ZMkCqrwQyDhnRU5TQJ4OsCHSqcEVDSmC6WLNLd8SwFSPRNFO5D3zmJ6FeIIk4pyO9iqkQqEXv4ZTAlzagBXxC/vRwJ6Pr5zNMJNRhi5geN3PhnhWCRrqAwW+GTn2SF2IxEmaXg2G8XI8VkKY3i0m8XhKcRNCsANdCHpLIy8VuZ7UGAdaHzbhSo5JlSo8rpIMLD7B5w9uI5klU6ypu8PgIAZZqD9ZHW4/ZAwAPeWv3y8eFw4Wv2yWWyOZQZcMq9iwsm5hl4nGPyC5gD+NqdjacgpFQAdrAwjsgordslEIjU3giyOWYd3kUSJGNa9SvN3dXNInA5esS7o6eoWfLX287CAsSTWUEmsBgz0T24RfqWKWJmsm8YsLFpHbk1jxkbwjbogsu0HjfFOz+PZ03FhVK0qRBEZVIqP3/tyvLlnxh1RMWzhnLDX7s438TbCgqLPyw+CS7+YMOxzBEpJvONfYDICVdXcTmOecrAKY5pTUfFxjDoWnyTFCWQC51cIG8zf5r5/22jfc390QVzWWY8oUz/rtCLzcr34KmVVqi4f4TNBSlMJ6mrOEsn11/wzIWhskZuQA2M5eH4nGMjGitawi5UYT2Z8fEIiUaFxmQEfW7NsDbfHm0Vfg7V2ADY57hZUWIk2cK+prM3syEl+Ssd08lOShzovjrfhUDTbBZsXAA0yY8M/dEntg+KkmD6dWddKmgkxeUR8JN0aaUiXqaap0DfPTHTwm8OJ9G9e7g/NHwBbUwgu9W9+HSxM9KCafH7UuD+a1gX7BEha2Pqx4K7IbWNFrT8TX5edhCr1WgzhFQ1SgxKBG84WNBndTKihQ+N1lkQFGFFmE4v8LmGKiO6VOJk1W6aYHBGY4kLyKPNHTpCDkSqk3ZI6X1iinIke/20m0JI/KPwug5W321yHSPBXgBwePRhdN/si+q2Lf8BGiQAgHja7hSbshUW/CeBjXA8JPo2IVIbbamQuMJwK54csNOYQLHSlEyQLjdAoOwMLLnxcEFx+5gNyFgvtDFaNeY0C2WnTFQvNDPuqJD7stN7HyizDytc4g502XbG8yWDZkPc4g502XbHUyGAphwyu0HF62GnTFcs/DJV/wLp4vslp0xXLIwzVPyBq5HiT06Yr6vsP801XfenY06Yr6vsP6functb3H3YKE0Sp/EEd+5zKS8Cin8IEUft+uPb925b4pH0/ovb96PnrRvSkfT+i9v3o5Zv3wqtcKLHPkM0EviOLkjiyz3Cz+QHXsBERVlmrGlB6owYDOmtyUWxyvOhiYTODHU37Abggw1yYVigqT+JOj9bHqULh9lfnh1fpVYIYl0hFxcO14E9tebmhbsSzFW2DJ9f+nNxmYf+mN8rg2NLTTFOrRftJ1dYbUcWyZNFpqUSJB5LxlKRF8UTPRuX50dtXX0bC9F98GZpjct7+Wa/m8WLRlkg1+82V4VX3RulUENM8tPMFTXy5NYwLcH0hMJbOTEuLqnHBV9VfzLJcmL591UvYPkYKAOjLPwDirdAAIGq8ZHRjkDkW/XlaJcgrO+xJwYghDE4h0M1dH5Ip3N3lfkuuz6zL9akP/ZkRlbYHpafTNV5CKv1kMKNc9aDwM4hIrcBjifc42cuoFT2oqgzvscJne7SDtBsMhFzcIUCfAoUDHja2rgPxFfQOAGZGEHO6RlEiLwGpZz+ADRJ1hpolxKJhE0SQFJD8+PtHQ6NNpixvAub/2GPjZJOjlO+gumsCQqQOzJt4k5NNjoqwg6qlgAjX+jN6jvc4meQodDoorJnAVWiI9MSMxzg5EVGMc1BZMtW3ZOE4ORFRjXJQijFBiuHckpMTEeUbB/UMpRRlP2ZxrRsnJyJqIA5qCyYEi86vc5oTUY9wUO8tAbV7vsnwaEzhxjyT3ZTJxcToBQscQViDt/xhlIaw0wQSVycpIyF6wF8+2hLnlqTm3tZdXgVAjDEAat5UQUaQTNNjsVYZmSapJGofdFYSmp9OUYMEyjIPH42J82dq/rw5i/M0f6Im2ZiaP2/O4kmTbERNsiHRsfrmLPIyzStAK1D9qgxPsquo4NN+OtXPKw3T7iYu++omAu7RNwYq76NFcTZKgay+JcznaTZGSbFBeTBgzWr/qXEanQTFRhQUGxQHm0BBnLYnJz2xEfXExlQ5txdmzklPbEQ9sUFJKmxIjyZhniZiVLEaUxPxzRGfp9Upqt0MCsGk+uaIz7m0sKbLWwGD68xvD4Vhv07/kIy+vqKvmXGAyTTLIrhTTuQHuDMEQbN4EeQXpUXl44MU4LuMRIBMsCJwQIL4iYQH8trkhp1DN5HBRxELskyknZ+4z6ccRzJFFeB6ULUMnit3u4rtEAa97tCvfbYnFyhLSQQySq2TBT7qc+AHozAvNwrn2LUuO4M6i0wKL4cdkpyUWf7I+EBnZDHhQbuujLEgVUX9NBQ6c/2curpCTVa4svv7I57Q9P4IIDe9//pBv/ZZunOQpeH7I9XgLPgsqwm1hyJqJzDYSgql6gXdeDj3YfUwR+i2GeV45iUzWM+2VJcVPUl3p4ipNEwUN4ihDCrc4EOTGccYHgNVkLbIHD3kkptgVbtCRBm/epjhKPyBBuOFUFjJ7k8b3/kiTP6ls/8vPZzpQqPTsiX3mFO27RMjqbb7T/KR0fudUQdoXloB6tne6vKj/57dppQYNxAKU9u5/869psHyf+21dHfV/6MObHcH2n3YX/oyx77U2lXPWWZdzjCgAElzqCADAseGOi/cUpWqN61UYeSbIo5Hw1U+pvwTF9hHc0psjnzSdh2hPLpc8JqIDxcOGIpGshMGk5uFZDanvK6hWyiLl8rAfhv1EZMUqHSIsCWYJY/m1dg8ebvt7MDoMgh1CFUjtq5+W73FJZFk6v9Qvz1a02Jr5Da3syeky3dncUNc+/+7zrLYPDnk7W2aHvyAGdUs5iU/oJ39AF2WhMpKXoFPLSmvKUErZ9lStgtzjJABLNMnWvTlZXKqcm6I2hSnNXsgBAyumypNq0vuFlPqlKwZU45A+UyGEgBiIEMYgjfpKuaBonSVFTNK+ZrrEBQmLPxNPJl9dtxn5z606z5MOnz06Yh9KrfI3kbxIcg5o6TETFr7X7BQMx02BDPKO0zS50GsO+37ZjrsB2Zk3E+yywfUNg5YRl3VjET8hjEElothQrvZRys4sBRVwQZM0ou7hKvxk5cNf/vdjGhISbAGSfEUTdFVZER/xjVdWg9lhMwWygaaOTB5oBci/IGkFN5K5xK2Kx2wkEdDogklSRtJ+vlTao/tOGwkZqR1TwK736I6uir8Cqw7Rn/6dBLq26cq8DU8ISSSviBFXNTAPuRS3C/RpZEzrh/lzdDvivAhbOa6GrBSlPmhCZOMHHQUKVAD2mW/lhoB6J1ZknFGDBDrCXlqvy+pIwJOLooioaGMIZUf7AwpbIBwLjscs9DgEFbOcQpgSNgL7JlUGfrVD/qlw0fPRpMthDyYP+dZc9hfzQhanwSgQwyntZ9WZrzHya5GzPpMsqv9HESeJ8z6jJj1Kcw6OEvntzkZkohZn1mGpL8sEyfM+oyY9Un8ObQ3G3Zs8RYnOxIR6zPLq4T8qP08Bv0JsD4jYH1meVP9vOHU5cKJMbkByhQIo9AqWKXaCi04H1NZxGUYw/fIr064r4l+Kd1X0XSJgbuWJg2VJrgloOvP/AVwblWBcMmgExRV+JfUj9T2FCXj1Cxu0LILkFauXtixUkW4L3gYgFRIOese0tDGHla6TUQAJAmHZc5WiplmQrJalyAM1l9qw9DN7Tw713Vuo3VypPuQKXYYgqpCczGPPSMHYIoDAGsPTmKOn+VkFCMHYBLPj/cuHU5avMchujIjBWBmTf9xzlHOEwVgRgrAJJwfwLbaflqMC+pq+sCX8Wy6vCLHehQq7UNGpv1ApIYQrosyFwjKF4Dv8IXsJxOBJ5BReXh7kVMwyQ+A/TwaJV6VbgvJt4PQVMR7C5/PAaVQqj9z6AO3HarE1ve0AEZiwsyySuMlKuGX6W5ddRVlH2s/QY09FkUny0gQNyBKe3bnnfbuQ4OF6fRoTzRwRQZunGNq88RxmJHjMItiBuMMG5gnjsOMHIdZZOLmOW00TxyHGTkOs8jGzZcljJdlv5JnHbmbyMV1dpW4I9yY6bpZ60Io97GhqP1TKAwF/EzhngRU0kr0IoSaqjZLGMIU7OoGv4KIZxSqTNkdPQTm9BeUFSji9CfpyYn0TzgNd82AGv6MyYgK/swewz6SNWbRhnW+zGhdRqOlhjV9x6VRB+ylJIJZieJSTQxqR2IyIgKYQJHdh/0+pJRyfTYwmq2iLet8Gzjtn25gtIkkjZR2DBbrYiIgk4qAmILANXNSAqmmE4SnApPKvZWHcwGoWsFEVK+EdGP7YXQTdGKjDFhqNHYAFSQQinn4aHM0weSoJIC/Tvib6bQXD9dAj0YFTjCQ689Epl95iCStmPZzQbuNsnnwXEFTgS2miJSXVKGmL/+WMaGKfeijndEokwbDxfdolcsqBjGWgibrDmTXcRSUq5QP0d4dOibZle7GUl9TiU6TYAXx3+YiRMSD8y8BlFBkzd2QwoiZAms0DPTgKVR7TS/RKo+ECkCMtfOcBOXx+hdDngAbtoWNrl6SBAsjSRCIz1E7i0fU46oM8I9VzKQvzQRVlAWCpVHskOsSBYstQ7ORW2vsK4Sl3AVJiXmRc8MitYVitSxpUWr1nzZuc+zwveLSRcZRAgjhbFun5FHLjYpOSw8N+XMi634uoy4Kf4WU1uXkDcpmeTWFtgqv0DvEX7iSUlcQRELHlZlObRIkoYdX5NYZljfVtA8RT9mHdh9232anJgDMxcOps4/+iEsnyVNI9R2SYrrY3AkmNx5sbKYVclrdg9gCdUlcbY9VNMyF3smunijITL2Y4jFhqB1SRrEu9S6iWCkOoGSJag7npYjeiFOiAG310U+DogoZiN6MVbZByjOIpGWXMKvumXfI+EkBsX+k0EHlXgn8jDVfSFmhRAKaVy41CmwOShR2p3VAvUSCWVA5l2AWLkqp2NEwl8sNJ79IV56oW1VLAWClq5b0p2hSI8gk6YlruvYVdVXTuuo1lNP8VGnZzaWCpWgLCSaYreS5MGRQbP0FFQUQQ6/SogbUV9B033xcwpFJkQtUaXVE+TQbfhNr/jrW1307tR7QOglFofslCoUlv/fVOgksGeWSmrdTxU8GwSpUH+BCxCi7VEIlvmYK5rLDLSuwf3FJcgki/UDVVXi2J/84zD2pG5l7uqg7nbLkkMwNvj8474ZRalgWMjV+VkrrNBdw52F2clGCcsU+W+/Ddh+aXjPOychfnOQipjf+oi4X7UhdTZdbi6VdviUutUVtV3NzlEmCSqvQBbfJrMhDs1V86eAG85fGpbRSB6eEhDIVLILUXZWJRsKGctcsXyXGR+NokpY4BhHoM/3T6tItb0KIwbj2tHB9vDFVzeFKrrAyD/HLBLqEIsDUL2K899Gd0SevggO9AJN0OcMMJ2s3mm8TYUb2nDMW4rKkc1jcovzmweQtvEDOCxLMrS/mjBGDlpRJzkvFXVmoQZvfqsP5EqRL6g9V3jO1fRFDaIQ06mQ5UGJm5J5O8kgTQJDn1y7rtWnlmKTclSXafiGI1UKYqnF86DV6z+s1KDCbGJyjPdZroFQ6XwMAUrV9HRGXZq40xZs+XiRuAMhltfzi/zs7liNIQ59gnY2Nvb1TkQ6BiK2m9LJGnGCwQ1X0KELNOL/Vut5yGL9A325sHmc3NtJuJym0kBI+t739ajuzm2DxMeSC+JP6lQ4p9wr5t699egfsC+pPtvlHw+XM0hIh+NCeMvEzMn0nWbsJYjZH9/vE9J2R6TvJ2k0UAT2OQPrw3DIgyKxkGaQH4bAbqVqNaU3CjKBRcSodOCM3eJLnW9488hM1eEZq8CTF9jUCVE9h18jKnWStlvwSlOBVWT7yQydHn4o7FfoK3HKpzFxbFylp24sgtPVnAKR9aW9pH9TqMlE8wRezg1LwjFTaSc4l/ua4O2ynqEekaU5SLks/cyXmiaU5I0tzkr1Iccxjbx0QXjMSHqcIj+0F/TbbKQoZqYSzObr75BC3UwwysgEnuXHQ9j7e4jR1IptuNk2dFwjebKcMRCSuzTa+gWlnO82ESPGabX4B0852mgmR5DRFcnrTu5l2is9FftG09A2RO08EoxkJRpNkodd5feIXzcgvmqaF9QU4N0/8ohn5RdPqN1TvPPGLZuQXTWvfUL3zxC+akV80TQGgFwjfPPGLZuQXTXKFXkP3J3rRjPSiSaoQ6R4TavnxHqfRGtlF0zRa3/ByJ3bRjOyi2a+v8+bELpqRXTTJFHozAidu0Yzcotnz1xF/4hbNyC2avXwdaP00WiPFZ/b6daD102iNrJpJNkp6E6ya/TRaI4Nldvv+bU6jNZI7Zu/fO/Y0XCO5Y/bxvWNP4zWyO2af3zv2NF4j82ION68vftaJeTEj82KKeQGdwSPK48S8mJF5MUmj6CC8HO9xGrCReTHFvGhv2E1eZsYBatMMAK96Bdigbmg+YxyMOWAT5xh96osdGP0zUjemqBvQVTy3QtIKDEBPz2s1EgmIU4DfzKrXZCm0RSGgxoZOsjrBuSlx3ogAQnWmk2s02h+Jv92m0R11AyVZAeAQ01SyrxABgyJNrBlOUM6jIXHuiURyljTTRcJvgM3aCD11CGMZSfUsMUq7p/wQLBJZgJ2ExgzQOB4bq8hFmeSVIMx5dDl1lTDoVYqgN+8b1kFnxAMlkJQXg4A9IjztZ/bxQYBHfjTiO0od8NMxY5C0KSkPSseMXJcpMgsiHedBNKT+9ecQvr+gdFyaed13BnlhKkQQvAfTox3RyojJYmcemq7uXLbiSSCVK8CNWCW/YWF0pHumStML+xF8OXLJBnMqUFEfyn0/2hUNlygvqAl7ahev/gvatZqDDKkpAx9bFnk0UzyaN1m1eeLRzMijmeLRtDcs682jyR6sLiroeG/ymBgEgLop2ceKAWunyKiwCir14VvAhNtoFCdoKh3HaaTXTNFr2huO9ESvmZFeM0mWQaLgiBDaVxtLeW0NlspZh4jSL0ggf8YoE6RlHZ8HAdMTk2pGls4k5SZh+hwt1YmmMyNNZ065xe3FkzzxdGbk6UySbl5d2hNPZ0aezpySkqxH6dN5ounMSNOZoukAY3HaxM2TlxGoKPkS1wQKHU+L61cdqp99jgIxkAhmBjRDMSwQBfyrDh2Oz/gJi6Df7o+nM0yBxFjbEJVfT3/Ox98n1z18Ps7TuPDLj5vkeBPNlbPMoV9mJSOIKTkxlwE6JmS5LiIF4bQQEwDGpXYLw6OJnoqlxcAV85EU3Wbi7T5aWWIrMScGaD3Pqm5+lUiO4obVGPMfnh2/F8VfGfPc3Rb1iyB71OncdodII2ai0nWlk9nxp/7RyPYFtuOXHzdp8Saap+cqS375cROLN1G4xY5ber/8uEmPNxlfAER++XGTEW+iDazZy+s8p+rvk34TIcdfNF/9crxJijMuaQm043bNLz9uEqdckqAL9uMnq5FOUy7FKZd8yh33N375cZM4I5Ic+v4ybw+w7d8n103kip/BxX75cZM4YoVQhs7O+SanEZviiCXcGGw9A9Wqx3t0n+CGDAhJSy3diuCDDJSreEpLxQXbZmOoglr3InWTzIvB6d19olMuHNLptEuPxsaZISh0OwOQ/TJTf3gOY+JojqCn5SORJtg/7WloUWmr2EjqeBlVEcsSPSh2uegBAEFSOmjcBkYhA3/6H63VFOwvxiBNt/BwYQj9AL+fOClgetEebW4GRRYmqr+3hXFMEJQ3lS9GdvC51/EH/G6Q8NsAxxwbdMBv/z65bqLp3F8m0QHB/fvkuokrK7xMogOE+/fJdRNN5/EyiQ6a479PrptoOo+XSXQAHP8+uW6i6TyOm3y//LhJnM5CHEPX/3yT03TOcToLU0zv6niT0wKU4zTLmmbjGMn1y4+bxNGfPd7/snbk+WtnTW9f9ZeZxmMpnyHy29qegenf5NBjM00AKK5qV8b9NLgsVC5NjWoLbaZHM+OcEOS3nYG2fjnepMQ5IchvOwNt/fLjJnFOCPKLFzvf5DQnSpwTgvxCK/V8k9OcKHFOCApLFZ3jTU5zosQ5IbgqFFrPNznNiRLnhINK58tIPEib/z65bqI5cdZt9cuPm8Q5UcZ7+sqvPu4Rp4SUzc87ML/6uEccrwT5vOzA/Gq8R43DlcgWLsCP4u1+8XGLOFjr9y3QQdX898l1Ex+sL+tR3VsgiDeoAJ6pZjTwLRIUBsycBJriRDaoPBDnBcyCqOSLlEP6zf9h7812ZddhJNEfSiQ0D///YxcRQdl5aHrdqkZVdQF9XjaE1NpOp62BImPgX6cifF/+grgnBBPNX00cUdxbkH82LTEBYO0GZsLmLDATVXjN3XgQwwfNZRhcLvLVpbsJ1eNJdF6mZBqVvdirCAnnnDbEh50GdmK+kOgvZh8IbyULlOgx2AiPIsRU/pDX9sViDYAHv2ITToYD4SaaDETYLZloQH0Lm0sGxeQL0SdPzwM2pJWYKIKuq6AwBOLkwx8ioIjfmSnn+20efmNv7x9vm6sKFC3DYw27+3lGhDYBhUiG0TJ61RKICrI4fBXE9E5hF7NJo+VZLl/g+qHP6ReJIPBGGsFDgrSQzJTFOaCezBA9H7DZSVQsjN0TZYM6Wszggjg1Ur2bTc3Hr/fLoXTzX4Aw1v24iF8OhaYBEjOeMENQLDw6cMcOYnozV3ALp/JZ4laWRs4wUicekYhptF4mNBsSeVJ3zZe2LFhHerAIoal7LEaIRN2gc5DE164fVEqkdirKJ6DyvdqFd9+X8OqQVbSppQDB3PRSTLoVA0cXykM5j8kXNO/mupv7ambBYB6pjua3iWZ+LSH6xLr/N8H7ALw19es/kX6PH+63NoKWMqD/8Q9fvwC/CNd3o/kEHMvZ4fo4tap0XP7rIH52a//4KZSxK2EhwHqJp29TGwrInQSGE57I+QGIKVHTrZuh+TRgOjkHhxIqKHETMH3lLWA6TrpcmehdSsz1Pnj0ObpxMOhxWmT/bMbRQDHLLnqainEiP0IbEhYobUirH3EYYMHpIfClpLf2t2FgcZxRtQuRwDe05xXbe/gZHQIoacjdBffUaAcAMRP5lONk37grUNJPRu27UUAFfAbsQgR/o5BV5Oc+PqBhiHDKVKM+o5IRiqqToGcYhmlrUouEj47tirsuvSSG/d/N3yHhFe5rpsEimHLV8IL9wtnCcMlc0/n/FHa8mtxTgWyrtCmogABXroPcZamOyRvIg3dKnsDQFXDdkev96XWFkfv96TBEdSbX5ny6jNpJ61P+wWM0+1ivW1nr5WzSo2Cv+2CPILuM1xNfJAr3ug/3iLJ7ixgDXN7vh+cSlQSRHge/AS7v98NzDYUQJaTCW/fjIn4nJswuA+waPxBiaU0/R8XUzJQ6tW3Xb0mafDBIEGEzrKSZNAYUi6ra86EMY1f/x92MP4ry1s3YEEkgKv8b/wvcKqohJduEdjfFqc4NnRtw6UbnQinQxBNUyJe6fFnbSFC2qIDsnoTKP0SjVE8pEdES4O+FOvPYrxA/g75xiFiTBHlElnsqDwemBEkzTUrrhFOzBNEYcqAJTLZpOQyimCt9gZmus+a8m+tubjUfD9lv7UJBhmU863xcwm+SwkCO2ODOuh8X8dsTAY0zjXh7CjCQvx/aNYSBHLG8o3X7iwy/KAgDOWKAq3U/LuIXBQIaXyRhrPdxDb8qCAM5YnyqdT8u4pcFYSBHDAu17sdF/LIgDOSooSajdRNJjTIVD0XybjkZqUz3I9DHMnNTm0b0TJlj/UB3U/gKvp4yVvw2ZbtGHXG1a/gVQzruOJkEXjbWTW7jpLcyGaLGsm3c5OleZKdlaVFIbbnYWarmQwdFXFM0kc/pFwmdSqkmJCGqSAcL1DTat2w4DlEUCeSyJBkmur+TLkqvIPk2dHKvyCIa5OeREk6tGTGEJnW5shxEslykdRagC6i+ogza6HC14c/kFQrOZdenXc3Hg/WrxBBVGIILTx136xbeYCkUGaYGBva8pAcp0U/5GyA5PxNL3eN7/dIiOXys60/Ji5/ezsMcv2LiiTyu61cbKeRju6JLh78u0TrTEhAq2yB2ueXHKpksZAniS/s34+ifiUdjlAO1ADXLoDArXn3BkWx+i6cM2Df+3qDU93FuC+ctu7XF0buDzxZ1j1z48GFxwsBqXXLxP982/ZpHWCxNj+alFfvzZdGSN/2SJ5V+DLT4jpkV4+DO3K1BiJVIy/5wqCeKE3IvNdor4uYud52P5AaletUt0dNFYJvVdAv32DxBA4BW5JtmWoNp79PM9A2hLkhmCoOxqyyn0uKJhNY9BLNxghSeTniwnsfxq2okZx6se3+M5OlX81n/nEGz2vkr0UmFMqcnmhk37zAz8O7tOJMwD8XlBRKKkv+sZVtkwzjC7G0yx6wO2kqfUSIicUiT7ScDmEpJVVLZO08QWTY67djCdB5bczU5OROk4DlFkBRdLDNC4UPMl/xbZvLM/tu+/lapA/wAvHJTgjNjLzXrudie52+LMhkPqTh7lv949u2vVYS9VczwIsEZ/BCmhpCskXFdzj/IEtH/mQul9BnOa8jhWJ33x9mZhndRAXf6TXb2v5akeeTKarENi96H5nNFBdiEJGuiGAlWLY6FdRFTu61fmmcmEYo0FgvQfEcMaXX9ak9D8wqjfstTgRIkMiGkei3fgRa/cmyusizXaI7FOJTiSaLw80Pldvl46DJBRXEZva3H0W/6TX6Ov5dGbvLGCOZCg9SdDBfax1QWtxj20G6yOVaUK79RonZ0wPwhyRmS1Hi8WQJQ4tF3/kY7HSiDUdLJYABzq8QF03p8lMUkepAjOFxgGIqxcP0deCGLFoiQkqJBIi2aeC5G2gc8NWThq+UwqvQkRNpX4gJfYRaIgCX0Ybcs2SvcnpIUKKfrZNNPHr3kwTK7TAwhTpeZz1JmojNpXiyFoxyFPqOxFPIRXRkMM446Xoi52N1bFgL/ybIQnbLuLA/wgpSDtaZyCNuU5+3TRodINXc9TW5939XySScsashz7cqapvluFjUfI81HPXP+uS1Gh6PpIxjSEQpSI/FoXVbIgQo/Q8c0nSYGDVG5+1HV49K6kOAC3GgKNzqmpLjWQgGtMdWKOLxVOYVO441n6oQgcmy2gwLlvLneLapIM5CrXOfrJYiRyV+emZ8Sp+Yd6+zX/OPX7z9M5a37ANrvhMIlZiWkMX05N2GteM2V/jtc44ClGVKD43fg08c9+dDqmGi84HoCKsfvh+ciWa/1BRLHbla/5vhI3WN9OO1TakqiYl7rRW970aRUMa0KZYesBKnUPbpkUZCMPRo1lHKXXSqkICmYjkWNEhIUXB8yEP1IK50mM5S/QKJT8xCJeeZTcdmighyyqJIySPP4rOIQo3TmOMltLkZceRCo2HoDmCWndQEpS5oX0BqTqSpKeFyNMEoHJzrrNSz/gaErNQsU7sx9lT4p/I08UCLBql+EWAVrQznZzl1Nkhqlh3UE5Blo8IHkfuTj1c1HkvtRjy/SlC9266YeTxn1btXHnGUcizxllqjOmsd8Fz6OVLVANRRLDAtMOBkq52nNeTfX3dxqPsacj7BJ46Fvd5QOY+8FNNUconAQzeVw+K5kWtQjeA10SZWa1JJ+BKZoPdz83cYRUkaczHogIamP+/ShrthFEBeJb/SEumSIUB6kbVONrMW0ztOpVOehUhzuQfvhtCh4otytoltvttHuaWMcqUd7YaYoD9+Co1LD6vSQ5lO1fXavYyasTB8r29DCoKvhxrQlfo4mjrL0reeUD/69Va94iOG5xlwSdAfcCCl9YDVuHD24g24s0ZTswP9orVwtDmagBbmr4vE3BgntGCwQ9nYiA/NXuES483FS6GfOqLapfq4WKkAxaBlneqjfahJnejDpr+lhVbeqZMhjLPjQe8kQpIRS6Nb9uIgPjcXOgtBeWIVjNyX6kiknTYDYZfVptV26Z9+BsIxq9/oJek0OH4l8YezncWngiKMGfquXBv5WIW/cn1IuW+rjVHHp7cjh6w9muj5lvE6NG3NsWO04NjSpfXQzh82ZKaMhA07G3U804/Ihslhk2LHDbZfdfE44pU0rWjZbh7QZtTTvYviUP7nKdYpIlIgaSQuMHECrLMaaSmhIe8P9oplVKB58I02t52lGoVfhe7OBi2DpR44dlKxjDGrBBw1Hf2xIszx0KSKystmF5sqMOAXP0/VpGaz+KgBk9TcIAJcPAOXGhOUxXsmmrWSQ4iG4gOdiLk7YMrnKcspz4+DhUlpsOnQ0q6KUIyeN1DXFxRgQZZ1aLqmzYku3vk/2bwUWL9SJxBPh2KZBiR4xeMCN7wlIaHM+7p+l0sY8LudcRDIDS641mXc+uRFSd1rpXL0ONSn9TRsIyQXhxawTcZrWNPup+YVrPR62j5TNluoN289uDtZi8VIp+R8WhzygzmYnrTtUGUMieVWSXYwpkdNpdPlGqrQRAINUO3R5kdibn8Zfzv/BVDWrron6hekW52nMkex0/iDTVLGX5xz1obEIg6wZh3N0W3ULtSulqgmV4p6lxW3Nes/VG5yiRQlD39YkZoZke9F+XIBvwEqzyy1b8ZizV4J637YpBkBh8Syts+LVdBmA5DrOiqc/mOn6lCse4WJa8ZjYzyasepY2gmzylqnuI0e6fCAvaiN+eFi8Yje37E0PIysnXFTVGztbhZgFdoXJrHkSX0a3YYRONk4GnRdaOnzVPQ6Itj8siOmI5x2+6oDp+PvhuUj5Q63Tui+1TiWo2h6/sd6t2ym/H6CDnxqdm2YMPGf8Rn/bpD4f9+mjP5IWoUQb3+YJ/oDcl5b3NJXDdoYzMAfaepDa4tZTIO3MEkf+LEpvpm3r47yAbtwIVJzBFs+lEE8ASRWeeQsrIPIEBV51cL/CqVgOCcBQDm4v/IxflOmTyYQVIm+udmWIYI3yzDjZ0iHPm2V/SUneQgxlzsw+N6+jZk/jHw/PwqUah0uBg9rvh+ci/Q+9VOuuOvUYjgdbA5/4WHrgCI71JCGJvg07uIqdNgX27Eehfe915FLXSWoRJscnjeJ1kZg6sDry8MoHKIodiwEEMulUXcQ7qlX+X93UUtOelt2aPGNmu5opqK5muqlsMPram7Kp9Fjn6l8YPrTzXcqB4X92bioI0IcwsUh9ydSsdZOBx2+YWq12+ax61rgtVVfAu4bOx+sSVV31iKpyNZRifCUPKJX7U6ZaiXpi7taaKlI+ssbbR3qi0MLfLV5aIhT49mEO+bCtvnAE9zR9XcxC7jLZ0qfwnm2CaK2Tq1oqAFc7rO1mAQ1LpEyLrp7PIa2eCUvwA9eswtFSLKFoUGNYxSQVjQzYNbMkPzPXYml+wv+JZ5pvofB/P+88X626DYcsaU6K8OqcVSXIqevxPPUd/Tpo1UWBzcwFRa9aEtxMK6qYpCVL+yWPVwzhxo3Q0vmq7ut8ta/8g/ySdMAiRMWcEooUNHX3VJnTbdFppxBnlguznMh/sVCsRIslXaHOlwuLNfVZg9g+BCOpGXniwLvYek/p7lGyk+olE0lKUdJjKx3baeVqx4lgeYlKBCu2XBZbs8RbWe7TGay0I8IHBEOnuTH0GyZDUXy7TgusItFwiJmXwl28UXRUSg98ZCxJsa5XmCZN+RFjbB+lidUNYeZ4O9t29NQCxRXU9EL38a2Wf7O2sXZSB+syYsPY5qKEx84zKFy2NCpR0LSQDOiBrrIMN+timSh5s+V+ebMdNdfrU57E8u0kqBG6rz+QTZuGJS+29onS6riiNFV+ZGCYH0lWz2TPMlUssSCodWuNn+Poq+YfDWjZ7NT8o+isIYGyAeBUlagMedZMs5yUvrYsJ/O8gMK5HptJpLzt4cx8ns0q6zwb8gX0bNjPu9CHfDRzj/NozHqSb8SLXdjv+8fzkLVLCRE06m3XOyuqvi6G8p146UwKJg5udV6EsELwL4PRUi5dwiLlzAdcJnuyfhZZH/FXQPjPEVc/e65+FlcfYrfRBFH35d1B3ikRzvQlsknwNG0rNR0J/kJ0IdLGsxxd/pJ5gt9eZNO+7h+3R/wTRUmCsrt1X5G8FonTrBDDSGSF1HkUP0imsWde9/XMW7r+oOW7WdR83Gbzt9kV97UQuKRuxlz7I6hz+3DxwJGN2e9+4EzTHHkw3pkRXYZrMoD2oQDNfmoMDGiILzh7dWaSivEMElPysmp6a3L0YSHmC/uMTHscthaLhOlKt+Z9CpyYcV06+ZtRISKlT8vnFGulyWnIhGzaxfh+MgAyF3NVK2FYadXKqcBd6tBWRpi0tVMFZCmOgIrCUlKGZS5BkLfxmcZnC62J/5+4//DAY0VLQzjIrYhIBOtXapdlXwt9NGSyZHAIoeY1CyNYFigGk7EMBAbXHsSEI43T4kZNmMUw68/nCO9+6CCagyVodAhWLyPobrlRZJ214ObjDjzmyTAhQBcCtpufAQZUUY6yWAY88VjJPX6d/ZyXr0wmgQEju6Z19rE7ZQ1MyZryCJ2fzccNxaFNY0Cc6ER8KfMUgXa+MhC9XGlsIt+1fqdSTpy15hVn6Q8YZ+lTLOAnxtpKRMg3ihN1EOyBgKFNu5FcxEJ5lBSz17bIaf5V5lT3f2+ZM3upjGxSGS9lzhxJZWQvlZEpe/Fa5lT3v2XOf8uc/+dlzuyVVbKUVQqIM9GYi5RVsldWyVJWKZCFi0Y/u7sNXC61K0rKCwGEhAcXml4+Sh+0/JKSZ8qUfnIMDLEt5UM6HBflTbmjRosnUgZq+0ytcLB9VXZgWbyP/7pJ3xQ68fo7c1Vmxr7Q2wXuGRm1LSXkC6GQaok7h9Yx7cy0jNWIK3Ro1Yfr/pCw5eKJGtkr0GQp0JQRF/nUraOQgg6k744MPp0whK3Ml1c63acvpfhxK8UvJdc1yM+nPAMIXkRFJx5gyhBb7rFQeumbLOkbvpfw7gOcffbSNzn/WefMkfRN9tI3WdI35UVnKZtlaaIjqKh53Qh5cx/Otx2icL5eqqRXi+pkdETYmq2yixWLKycj2p2BB+AAMmj5koXvW91iPxVPUeksfdiKK3+XvS/+zLKETW7XEc7igqwyLWOugmOdbg6jQKQ8FMaVCFlmfpHKiSOA0jt9XREYbFNEg4OFwt5Gyxn6qqJ8L2LQU91A3WvKtsMEeDKNVRcj2Zrpd6yfZbFIzae6nsa6+HU6s1ClZvWzKtsfkEB4zty6IVuX9QczXZ9yYc7pik3SVV8XF5Ih42Qczm+w5jxRhHAM9qn9glz4BfpQRrVqcmhsEbDQegxJH11KSOmt9K7u/4dL79mLRuU8/6piWjcNuJVCQz75YkyrhlkuIytAFat4w7WYpRXOP6phEjyrsghym8vcS1S4RKqCIBP+2U2e3sTZEhWSqnA+jlHNCibPZkX+0sPXbrNXn8pSn3orZqr732Lm7xP0kbYUsRCSxuNG5WDMpv1RgC0aBdc1ruBA/TOAsb1hVTvw1WyhTe3G1sZ7kquSheLI5CsUz0XVncopwt0C4FsNUYoNcJlD0kOE6THPLgH60bIEoW0E6XLlHfZqgPY6oRDKK4T+IimrqBiI6sVFf1Hutpm7MPEQCPwFQEauwQDIGQl5ncXrZ3MFnAyolSw/J/U6r4V77CuGTv1arXu9Vuuxryg69Wu1HvtarduVrc/lOkmKy8ZtcpxcPcVD7MDBCTVMVzcL8A0nvnxUVNhklIy1esm7CYEYkxdKXPNJW7OenwqDl/O/ztevcV1ThyBOaL6U/RyNPgaXHBoosGH6Vt3/h6sY5xQrAdF69lzF/hNrV9lIw5Emd2k90GQwWsS8fFuWfNsbnkDd/xfwBNlLxGVJxL2I71r34YrodFr7vRePYYmtqVpL1oRHxkl0ZN6ugYVeCCLEHpEgwnPhRva5cpOF9h7zJhh2gx7d+B/z2rm3NFHa/Md2LiFuskfKbsYJQYHM2CNlj7s5r/5lt5ZRQ6b4x+Ph+XBf0nhvYIwcSeNlL42XJY2HWkRUYlc3g0iajTFSbwCGQdbCUrWyL0Q0j19ZzVGPK3YVDymRHaHxRYyCVnemSpDTkB1jbkrfwmUaKk7pO4++xmC5Ilk6RpF+57ZFJz4MBG208xBVmFDpSgtrrYfh47GDZI2d1n3izzbKaehEkAgmxEEzUVhdboDYE5XawZGFS17q2RC3nXKT21woLY+IIh0vzDNE1eFkke2SyKhHiTAJX9er3Whl5ZZ5SelB5X6sGQ1JiwclJK0ETWTDiEeAKZq4W0N+V7aKANqaqMnOdgfIOeuHS9lD6lL6ZeDM6BA1aA0JW8lRt/1PaX1AdhxHkUTX9ymeC7CVWVXs/ZlKRIDEOrc9AWo5f7HabTlC7szMtfX2Yb0kO8JocYrsaE2cK+x0d5w/r1wSWTiFB0FuSLmc/1X4SDBkmffBcz8knSKSDk9qh62jz2TeyFa2o53JiyR9Wu9P27mTKu9Gyvcwg2TNef/t+aq8r8/s+VOXxxrSaWFn1WUec9iftqVMiUR2WJOLlCmzV6bM5d2vwTqZSwL9mumij6YAoITMkBcTbetKm4JBzNGKaao0VLMVG3ukjoVrGSQenq/1ZEvNE3UYLEpOuoIs5CPtZiTGTJtfCzsIv8kU9lekNpHDbTKHzVzqlWitTG+W1my65RNrIz0wUjIslvYBLN3DCuKFVZrCUFVZ0FaVBKtU2iCCizkpQ1sY2Ab1727RINb/xegMnzENyl1HCji8QqrnkRJgAwxt1QBGvqwqo55J9aMK+NUcd5MMrMxhxFr5IJ6Y5QrOAf02fsq4J6/nbu1PhNIdrTiFRVmdckDEWJaoQ0KxOlJIM61Fqllz3qpS8xKQIkuY8F6ZKwLyt4SE7YfJwdl/S05VEuap60Yjg6d4VPayp7msv3BpOZI9zV72NEv2tMamXtbdxLnMpryAQqdyBwuZAWKJV/lHYFnE7C6WRUwI3+jGAvkviJ22LzQRuoC5ScXDSkTkMM/UgxkQtpnpBukJ3JFlpcIztblIfmvUAiRnpnlLbPspvz9dUqpvGt3q5oaJ+zOTZalwMX/GRb4pSoDEcx2/KlyYA9y9QXI8vsH9yEGp1LIFME8nfEDphbtEtTgCl5Vv9NxGsKkiMPMIePyiVXE5ptR6NfkEBViOaeeLDFrh/juZ+jdxvUIPYRxZLACg4M602o4OJ0TBsRyD0zpWZwY0dogE/FLVGDyFzkfFeJRnPSDBtMMiZ7y1h356Oz7LTDgnWn0Uu9++m91ctw20M4mYWAxBQZbX0AbP0wg3eHqDGMxpfYZi66xydKLj81iKuzoXukwD7ZnSeeQaWW3zYKuqw9aam/rZ6kGLUGQ1LlfnWT9bB3WSkLWTWjlal8nM1vKbz0Zf2zk5Jo7lrIyrrYO6o8zymv5bbdrL2czXf2vl/pQjZZtWmO46C6ppn467Oe//tq4v5oakT7nD6G8FElCzHIwp4rzz3xhf6n57v69wfxtpx9a8v63f3zbS9SlTuvapPR0/k72ecZaecR0xnzdHesbZ6xln6RnXt0R/PQc4MhfE2rIoACQDpTALsdHIWn6EQiQ1nFBHeJHf1AdQIlQfaZSzQLldnGAcU6mUCMRq63Kr+BDBxgMiyvNNABdJgJKHDYAi2Q6Pn+mPWlJcri8eCermXoWzC6C8/ZuUzyDyhjV4wK/l5oWc/wROCc19Naklkx5UtOylm7Okm+uLsUCOpJuzl27Okm6GrmeYpqtHpoECLFTDaHbyLs0iMxwwzrlLpy2h1eqFyZNYKDHpgqTucipjONhYWa98JplOay1mRqSEIkAkkh5b1k2s7DAdQkZnZfIUIkAZSDL7A40RLuDAzQo1nXGYv5oy0cL7J8Z9PSNsL1Gd65/g5BxJVGcvUZ0pN/2GSVUvl3wkIrhs149V/3XeHl150U59ZGx0OnbjEZha3LDtc1R7V4aGJ+2AF0nLtCvHdchmDpCb475j7nbO1oR/caO6dCznHYZDseBs4XbI3ge2QAq+9lMz2U6U67VDdpm2oTKVztQlw3qDPGgbxQm0Hd26NY8Sc77QOvUcrWc+R2vgHHg1qMgJTz3z2WORt9TmjRP4bPYf7BxQ7LCNL7XDNghUktHE1GZQgJ/TtN22eo7YhPVmuxMTc8YBnFswGGhDx1Z4KkjMGTEUtwn8bNt5KYK+7OZR6uLtbb6eudZBbDeTtkkmV9MPcoN1vETdhHP4HaZGZpmQoj2TKGymvJiFrOn6VEddpqntfCppxHw3q/Eac2WWF8e3XBUm0JmIaV4mkOt1vqMs8rkC07z2aT83WZnptT+Y96fCnWOar319BV8Yj4DU1bA/EJpOzarmY1r6E4FE3xHHxQvhkvGaqBOGPMwmVNONQTIuRqly8kKTYAhTGw5/vMQUPWwRxv5MGwODUQkIh1Jcu/6uKbrfAgSq1xSG1rrELQixEVlHCkMYzQKPi9DIvy1aCnkeZFKS78WoUrg7UBQa8qWPx+XPPtK3x7SIH9eR3wVn5eLmEMmJYs1F0jHVWCvfIMV00XZE/h4/3Jzc7SxVuvb9m3JjJXl82c2v6QKaTxO2ZUrsZsm0aqUwCdbuURidVuLvftkvo1iagCmlQgo7D53alvIidWFAwknIQsLfTTyTwk48e+9FGOTmA8aix7M3MmNlKHrhH0j4S82q5uNl+NNYS3+B+tX9L6g/e3OE3CR6kmLjLHUL9EENaYjOVCeqyPhcgNdS7SS5TTo2yxiNg5Vpcj4Rah2yVDHaUV5ABqYaPHDaEMYb6eloomu4Iq+sU18zrwBUHXmak0blOPJyOHIVOg8ogEp4Xo3VG66U0h0j1EUPH5cuYp1LgrGUI8Fokqz4dNQWKixm7xqR5RpRXzxB1C1eGSLmapJkHJ2rZItbsPuQUKaEL7NFkxYyxdwcmn1mVR2MUY4ayLRLt55WtqkbjbHlZH/X+DaQMkJBrhG1SLFw5vEnHxXWUj0/hqKs9GRVasZZSa1og6Rj5adcVCuLOvU5eb0zRqZ5As1kA9s99U6DXGoM1qUVFdQtDUblVpHWaPa8mDrO0hVsR1EPw5KIPoDPGzczSpXyMXUemYb1ilOaKHGezYhwMbLH9rfNCvfIHCDlvzlD1cL/gBJCJmr2y/S3SfARkUmc3+TuxW9c1arG1XLvfKSNgQGppqM8n6M/Dslz4o380aLTkHduyHJueCV/tP4/Sv7wnhBZpg+IAEJWRYvOH977INMTgEm/QAQst0AELHsbgSyfgBEZ1Vvn4xI+gKACOlJEYbGiBfrI2Yum557+8nHMkWh69qLpuWsTADkmeqiRaHr2oum5Syy0vmQGItn07GXTMzXQy3jhreZINz173fQs3fQ3M8gc6aZnr5ueJYyOcCx+JlEpycudZ0pzQzwlnJA9GqxezTtTm7uMFktx50jPO3s979wVu+9wtEZq3tmreWdKc6PuGZbHu7BOsmDuVGLqhK7SfFZTP5FcRV8d5Onml1h+nHs643xyaRqBQAWRHP/gcV9+BgzJ6rZYIDpHCuHZK4TnoRkAmnh4kWgGeIXwPDQDsC6GF4lmgJcIz5T7xpm6dRyv/DWqACuV8RK5giTnUFe1/DBRmjJ6eOM85sg6qZqCf8GWuABRfdyPn0xUDmeAFL73SG08e7XxbGrjb/j/0c+vyuc34CkW87pbjLfbFyVA/S7mHdiLzJt+F8FYl20lPb9RV33cm5+jFMZ+MZu23sc1/Bwd8w+7tDyiKep1sfP4w7Daeh/X8HOUmtNvZtPqbafKpgzzog1YNwWcShlkusOQlFQvu3icm5ClhP1To5lPo67wpCsE7OK1hTMP1rscRR/36+fuTH/5quUZzV2vdJ2nzd2XkIDdQtutT7cilApx2WRKQK/VzKnHMo1gO+lPjGVi8GTPKZuChAIJ7kyoMSu2Dc6b6cnYugR9h8lTcEEkFAsn6N5P0VmY9g2wJE8wy5JcyCl3IzQyyZsMlLeVzrKSteTqCbOv1K0YsvRadqncePDmp6JTLzJ3mHkmbnuQHMerG8hLn267/TJ6uj5l+GvNcjfr3WxqPl6aXyslLf66rMxorfQC3HkqWuhvb77+ZGAMfrz+kYoR0MFw6ZYPABJUh4V82OvzHwoqkiK/cjKbp66xP1uktWYYjdW78d1Qp/lRS+EYQSZGqRtU/VQKXSjtd6msdcssIMHZJReRgD1kZgCa9DxLQOJiVKE5ho0W0gLqJWzCDCLlUWwskKYh9RQhr+Uth+SHVKB5k3m3KzXT5t3c9t/K4LFFWZo+7+ad5xHX6Hn881rembrZvKUw6JvRFuO1trO0tsdIL2Mhite8DnU2HerxEkuwmxUWnHhzk9z5sAUUObxC2TCeLAq9i5EQAaf526hPOYrMAtCsd7PBOyGYNX6fkXrx+6yJNhovX5yp6Pu64c1oo/EiwFkiwOXFgyTP6OziVXszFXhfd6tItDd70d688p87yIoCN6/CmpcCt/GyjqxTuyUcgEX+Jt2/lS+8xr6pDrIQkRW3dC5M1qrvH/JDsXz5ZrVGs+q2Gezt5EOV2YJr4KT+M75cqS3kUHcX42UKOSCjQVbwjRvRyvlPeVBbkdKJXP+OimI398AyxrgEFce8P12hp2D2KrGZUqFFBK0gzJOILM8IxCtIlYzEy9MyPBQQ41TtRxGhC1qtJ9Gk1EWUDsCVsuArYx9oz2Jpk4oO3JEGBR32o5bsZU2zyZrOlwVkNWPqjbVVddyHF80QwOrBRocw6fmsYQE0Sjuonaa8/gJitJpUvMQaJDxm4rlGmh5X0TEdy7zNdylF+WyyKsjBGPcZy70qRfmC2Gyj7zfikjnasH83ae6uC4BzyoS4sGz0UI40KG49UFxG5AKhw+Be3GHEPML9NMQ81T7rrFSBSiAGdKt8eYXFQW1YrVwEPKvLqcZ5nFupsKC9Us5DnBCsjjHNzGYxBg/W05KvT6EneT4t5Xxa0/UHoipynJOldIb8Pv9tWK4dc2KSA8BW1YePUeW3paVtab6ogKg7WarvkhktZ7kIaMtiixxKTzkVaGRniS1UCEI1z0wvU6l2WpX4Kl4Aq94IpaMbfJv2GdcEUIR/KM1DDkV9E5tpvp9JFqCKd24C80VVRg5YrXVrj265siU+WFawGBuRQ2PNeTfX3dxXkxJ+86HGmb1ibl7azNfLZs5upStr4zrSxQJX3lLyXaObDx7hRCbYAO0CBMaLtjyZN4XN/Ekl9Oqzef29ga+jy4YDgc4oI6tmiAjTkJTj8HJsWEDBRCXlfUDDnNqaR7aCaDEydB/GsLaQ6/iXrWqQzkKyii0fuBfVYyh+I8MR4OiZ+Mbxpkv+BUubUuDbqodz9rMvkWanqU1LiaVqDsJM1QnZlMGtvGCI3NUOhXfD+Ytg9/SP+0+pHVbn8/n72Gcpa7vedvojh8ZaWrV6bJH6FEoPKl/hX1FRcTbUTwbDXzs6jlL7Uu5RSWsKnYF199S2tsBbEpzUUwXkwjb+3D6dyQyqAavKtfNRUq5Ul5gUkjI6WLH0uqYq2HOTRkbAxBRSMHS3tvNzBpajlWl7PLTRy1gHIVQGZ6t9an/weMQ+NJQILqdLGNbtIz1IzxrjOmj/3IqqsrlFmdX5KYXB+uiJlqfLufxb0i2GTjBJvZTj2+VXnk6MQZfnG/4+RajbtolBvV1VRsB+FG5AnGyOgyGf0p+E6lCSHHv9xbCbLMqHjAvmq+gk/p1G8Nh0zWGnYJ9CK46LXMhdT34pJJsI2UUJzqzYc1etQQLIl0EF6M7gjXAKa+a7We5mvZvtbva7Oe7mvJvrbl7fNum+BRxhmSnfn9q3PQaMPwZI1Bc14XBOqhtxA8vc14rdrwWZxfV2y+Rfi3flMo1iwlmmZ7hMe3XfTKXeTjOVQGFMvURuQSJcelsMCZkvE7y3CNpNUpOURvqHqCyEVgjj8CrluHxEmyqVbI0JNoivKl3gburqEIc8u1DeCEGI8m4nfhzlY2ChS6BznDiS3CTC2DaRG5RtKmd6lMP3AkNTiG4s6UJ015kNgEavGf5g8jeJ40bSWdsEI0X+QuiRK6Lk3/WjRgH0Lhhn/SOYLvBLkt/BtGxEUi9TDMGuNqgAS3hf03OZjCcTK6ud/1MtSVCIsoIHkZkfwbybhu6GuN7g3dF6Ukg15FHmpYw/r6usbEy7wegVG6QQ35h5zK8w6F9EDTKVzmcxKPByWHpSKsNAWCvbu1x8QVhclnB2SXQX3bPQ4qNXWz6I70rispEAaCS6LWkhYRg5+BMVIBRDX8oV9iFZe536ZhxKdKYVDG6IIbPOVatB09tBZfNr7QXyD4jD4/6HLUVIPEImrFk4PJDIKqUO+2+l63hB2FKbp6nXwf82mErh+jPpx0XU4xSuD6NzylxczXk3193c13/TGYqf6hClZrmb9W62u2muGmXS1aCydX9Xvr8r76tZ7u8q93eV+7vK/V3l/q5y/7Jy/zJaYuk36KXgMU0REccDy+PlxLP0wvHcw+P3vjnEi5w14iSYPARAWdtZNtLaNonBQXE3k7FihrMRa8T5i3hHKwjmhGzFa7M4CPlrY59hyWPQgy3IICnIkfGoUXnEb0aYlOE4dq0xlVgd5F0AubU4H5V807PqaRjuKtu8BDJAMw8JXc0yXC0n6daOfXS5Zp9HB5B/YJok5wRwib3UIy5nuYlmFAqMV5szpiehTOrk9sjyCZM9U/j9ZW/1au6rSRQcz5lTBrHz+a59qoUy42XWl4LlpcmOWk6mFQJTBAroinhXJJQVnQGxPBOZAUyQzoWbIJ6Z7MOCw38nq65M8s2sCTfETH6wDFITm0PNxw/xaRfJowODHP+QpgMyKlUAavEVjY9BD4G0wc8AsWEfMVeGRJsFjWn2ZrfirMYhMx1HE/ZHhJaVDKyqnbIEHPM60Pb2Kz1bGIxR17tRmrUI9j/s04K0fftO5Mgnc1E5PdJnXuQ9Uwm8zDfIwb78IpHFOXrkquedoyCAfHsfFXspuQssWng3BrQFbIpIrkIod+cx4FJjBqWVhy+0LPBk5kUncvIgNvUQSGTkyVRNGnJ+uxLd1jifiIKisWN/PslUWU+KjtdEz9Q3L/OtyK9u7vh7HB/Io4k5TniVbWwwOULAUm5HZgYE62YamtuOY5D2kPrUNok/4GGnSUjJVVWZD2kaCQJ5oJw5XVZM+4gXVWmmS31k3+JFYhnoREGjaOaXmI2QIhx9W03oTVTVZVarReBm1WSYcoHcJTMS9ukExpL5wyJD05WeEbBPVFBHvDDsDB/4NI9DPIBju8kx2ZjQtqGoEla5eM/DGE8kS9ezPImYsU1PlhQJZc4ZqXHoAjnAmiWwd/K/QZQpqVgsnUPeqNABk7dB+7DOSzvuzbIVgrLNx60WgbPzMj+VUhLTpGSnFeXQKbzOv+UxrM9zF3koGYBrS0E4Uc2znBspzLZ+a30gRb1Ie97rT33EHdVkvK55Nl3zN31EdjP5vtM4B44uejKArUQZggUlEdNUT/ICJ2Cxky8wuDVp1/Clp3rP3CaUAOzC2hbhBdRsx/pd6SY8Oyksl/58Pu6IWEx6/EWNUN3/W9QIixcKLyn/pUZYUlCjKl7Yu6Tyl5Cguv8VEvxXSPC/TUiweJ34kswUcn3q+vrSq/Uy28ggGiYP44ujUYYc6iQ4rUBte30RRBYw59h8fHH1X9z+kvkoKQAMFK/PXqTPjjUoQh2omwpErESerNMQ6ixnaroasDHMP3FTsMRTJ6P1kXgqXvm7pPGXsES5pL//9whLFK+cXZKFDjGaWN23UPbW+QF51FAoG8PGQItQrhdotMymTB5aK0QyFq+eXaiEXRhKBJgFdfNmFmUQTCj8x20LqC05q/7aaOkGcSDB/Q1qsxSU64ed6jvefavPfWL5G9x/UcitWzsZo0hOLUR0fP/MSIHfRekxsjCp0EczUpXZC0EpckLY2e4a8bjdtc5yuzxnoN+QKc4MKn2Y5Fc3cWVj/aipXU9y094QSaifu7ufKS+8WG4qjcuGnmTr8e15qehCOeMCVnw4BE1Jml/SyWqrXJAenJ7idZELpYbL7PG5W93iElmM1XMxdgTEmSTq3HEu3EKJFHsECLUxA3AWX+dV6ZSEkJfRZ6HDA+UNCsSp2Xzcsl+mJYaMdMu3Tn+/AaC+eCXkIiVkHIQ3TM39NaLl1gshF8rQciX9zva4jQCdVbxwbaEwK6maAW285ACpW7yWa8lanPrL4pQDBFXx0qhF2qdI9MQXCcL14tVBi+Q/scrGFwkgVMWLOhapNr4p35USYKiKF0ksEkmkGXF0jSg89fqFRfqFI0YvlxLAOYuX8StFOa0e5z/UrXPx/EgToxjeZpQT2TZDWOVq6rIijRWTXChKHBkLPzMp35j1QHpJx/5Oy0CmnD4H6NGlu4ZD4HVgnJQWIvN1mxhkEf1fp0gyk5mBQhUc7wgHD0Ds1Sg6bOQtCwh+huRZ/W7mDQeSI6X7imvxyoWFMmivVhXq/u+1qiheia1Iie3NqqJESmzFK7EVia29WVWo+1+rin+tKv7PrSqKl3YrZf6l+l9KtEF4bbVS1l8S6+r+f1hivXgduVL+dE5W979i479P0EcC9U/nZHX/X1A6Ll5tq9Q/nZNLpLZVvNpWqeUv8cJSo3jDa1kVaVm9aRmVGsXGXoKqSILqTXhC3f8KTxSvulWkuvXCVS81ig+8GFUxMaoXrrq6/8e46sXLXBUJWb0xoq2bYRhqGToarlF/6CR40oNetAhNYZm6PnDZ7qrvMXklq1qhnLgPkrMM8PLjBv02JcGfN2pxqdE5xsvgFEqxUEM5SqPV6Bjj1VuK1FuQywpvpEXHGC9lUpqOMTB9Di8SLSxes6NIs6OVhOPyan5ItWhh8XoWhcIMb3TQ0qJ1xWs5lGZy5CUUxSiRmEPxYg5FYg4wR+4IEv0sa9Es85ILhfIJOA9EjOQSKS4Ur7hQmuyoe7zSRooLxSsulCb3O5Bjwh8TjVavuVAooJAbmRpQh/MXiYarF10o3YZrLBhZItGF4kUXCgUUMtjZ4cRR9zQS9801uxcMgONEhVYqmkfPxn2YqxfSu1dz3s2l5eNxg34qdE2FHdveWPf/5A36aUbhB4ypaDhISQLraP4MptJwksNBluc3ZI+BTQSq9IEbL15SonQzlR3xTtOVIGMms5CvOWllnYHIX98U/Bg/Vbt0V94eNnq5g/FITo0y8C0AxuoEwmgDILQTmtfzizxyhuPwRDD3+H4/y/ufszySqiheqqJIquJlN46EKooXqijdtqSYWFgiqYripSoKNSLeNBTUy7pUJycThWuqTlsEMEVybjaSqaiGggxz7VStVHTMDAnVp1lLZnAMuAIv97hHv4YME275tAT1PnePkWpF8aoVhQoUjNInSk7+GlmG3IV8G/EEqYZIr410DGL3UHm1Sm4rUxSPfEoyADmKqRjFJsxcuqqP5C0wW5aH4E44dyJBxj943L1fX0b5SxRC3f8zohDFq3CU8ecOPqId3CtnlCFa83pZ4CPljOKVM4qUM974rWVEO7iXuCjUq8gg8oeTKtK4KF7jolCwAlKOHR4+j18TzW6vcVEoWAFbpviNR5Pba1wUikhkSBHEPybawb3wRJHwBEueAQm6RMITxQtPFAlPzJdXM6N40+sglKlJ0F+C1kgHoXgdhCKhA0yJKKaZ0Wj1JPwiEj5Kx/GNRKPVk/ALCfXwMwnHSMTBL56DX0SyH/PTUJd+3Ec0Vj1PvkydvPrLLhLx5IvnyReS3iFzEG5nEU++eJ58IecdqN74GkciFGATrXBrf0hwFGiKmUHymQ0KraohaLeWIIaHk8TrqPa3jCpeyYgDQk2gVFgB8G9pWjZ4PdkDCCIFHBCDCkvsEdGJb2gip4JlNngspTQyngqbjwfgJxoJ++/nqYjkXzzJvxjJ/2U1jjj+xXP8yyp/HoVWNNE8wb2QNP4aJK1oonmeeVntz2PMiiaapxWX1f88xqxopnmCbFm2LbzkJ1Y01TyjtZBiOQEYD28kmmmelVnIIZxYNqKFdEUzzdMOC2lloC72b0mPYRZtCp6IVkgDA7BsQ3bFXWJHI9UTxwo5Ga+L145GqqdxlG1bwopfy45GqucHFOLsX1/Ljkaqh+YXAtRfn0c0Tj2kvWwJf/UXzM2OxqkHf5etcTpewpcdjVMPaC7E3L4vRDsaqB6nW4TTfVuIIphu8TDdsvefC9GOhqoHxFZiTN8WopqCsVo9LLUKlvq2ENUIllo9LLUKlgoYZfRuagoGa/VAwiqo4NtqVlMwWqsHBVaBAkE8iO+kWQkJeHmpaIMemrm3ifNEAS9DzZlFhykwYDISkt57vuz3ymX5MOwo1UDYmwSjIpNBzChb1BRetNqTHP4yzCy+3Oy70BKVCXxrQuEL/QAk0jE+8O8VVaCLUb94RgPydRjfcaXLjgs6+9TPXwNAVlZ3mD2eZl5GBfVDPVAdjFhG0tQpfWb6ZyTu12F3QccX+4Oerr9FCCH3G+LiMx2MKOgop5M8VHHQH1Bmimnrse4rCE/rY4rqkZuVqEmQjyL0p3rbVd4g4h1pEIRPXeauDG+A8quEPjRiaZkI0I+FpLs8UgrZPbX583z1yM0q5CZT9QFn2LqvKpncB06z0huF8hmVeTBaTZBTYE9/XzdEzLz+oOW7WdR83Obwt6nIeMZrqXXzmRFyTeIEQGqZAH8KTDArAgZvYcoE1Z9GvWNkASazC1AwEsYPWJ1NC9d2dMmsSdYGYG2Pe57+npUTetEHqylYdqsHV1ahJzE54h8eLLvVwx5rVuJ3xkf6mqN114MTKzGFgOlHZwLrFdi4UjcdKUVJYIAQpPIPsoAgXXaWbDdfTpmmCiGifKYD8xN0XD2msWat4bR5jX5VtIZ7lGEVyhBl+fD5spuSTgBTiWjVSTppJCz9ZI0v5TSNJaZrLwk1iliN78IqC15oVOiqHsBYs/aG9bJLRQjG6hGMNSuWWS8bTIRhrB7DWAlIxEIbrl0RhrF6DGMlHhE6/PEACiKZ6iGMVe7uYInFPyaaUx7CWPP+c2JGEMbqIYy1/D2nIghj9RDGWv6cUxGEsXoIYy1/T4MIw1g9hrESnPf6fiMn4urxfFVWw2/vt0SD1ePvarHBGmdA1H2BP7SQU5WJRehJMyGmdJHYHdv2GS3zILeASqvPgG/u5McubrCEy9SzNT3u088Hma2+kdZqiSaEx2xVw2yFWuw1QmxVj9iqRCS9abHXyAyzehBTJSYH5kbhbUSTwaN4qlA8ACSFr61Gk8EjbKoQNkBgxReJZoNH2FQhbDAw6CfmrxFNBg+wqQLYAMEX30g9FBsUAeARNSj+zWwYQ2PKqAiaytR9R/0iaYx2EQwjo7jqUTq12gYQn6lrZBRXPWSlVptT8WG2RpiV6jErVZgVKPTEF4kGvEeWVEOW7Jf9jN038GWRZF1tmuOQ0vLZYxv5P1ucONjyLHLiGkWYfsq2UG4I91oPKqkGKtkvO0sEKqkeVFKrdpb9snxFqJLqUSXVUCUv/ivWfUp312J4M3+KeXyMn4XvxsR1RieQL4Xmi7g2maIxLBRmKMZEbJXqgSvVgCsgugRlkRoBV6oHrlQBVyBJEf/YaMJ64EoVcAWCTvFFou3LI1eqkCt5vUQFEXKleuRKlc9ICwsJNcKtVI9bqQShvGZ8agRcqR64Uttfyu41Aq5UD1ypAq5AGyt+qtGM8MCV2v5MG9UIuFI9cKUShIJkQKQ+WCPcSvW4lWrAlPQSBkdmIdVjS6phS95yT5FZSPX4j9r/ThtFZiHVIzuqkB2Y0PHPiUarB29UgTcgXRRfJBqvHoFRCafIvcf2ezWCYFQPwahdoMLUw6xtjUAY1YMwarcB+xJARCCM6kEYVY4gLwCH2qPx6kES1UASsVpmjUAS1YMk6vireFQjZ4/qoQrVoAoJaf00/UrC3stX4WL9FW68oJkAFi67hEriLawWtJGgaicpgtXN2R7KU1W2KO27mVuEOpnkJ7g/Q6ricct+cgjBMOJSbI0QDNUjGKoQDEq0BdeIpoYHMFSz/ojJZTXCL1SPX6iGX4jJATWCL1QPX6jDSsIvQymaFx6+UAVfgKtpeA30UoGFts3lwIP09mGZUSVmgkirbYs7IKrXvj3XX7g9QC2WHISwmeX+IGwWRhQeI1GFkXgBV9cIIlE9RKIKIgEFtXARiCAS1UMkKvEOPBgGlb0aQSSqh0hUQSRwroxvJNorPESiTkU2+WWZjzAS1WMkqjAS0IyLLxJNCI+RqFN7RX6JSuelO0AdH8r40KplVwNYEs1FADgNncRWE/CMqPBJdCPEqzOIfoYKhwwW82aPG/SzjWgKSksFNFv1HvjAHTRfZPSfhHvbxpkRakHsmXZx6CEG3L4FiHyQsMlGz9BoIRv9cZt+QgvjAQG++DlGM9pjPOrUjC5vgzza6TzIo8oM4YUeXSMvhOpxElU4ifKWwVrph8OZCXejoCi3k1F+U8WNjjzkavFykkiF7sb4siIEVS9+6m/K4y6qcBcgpYRPh91c72DAjUMT+BLUsDLRapzff8jvF+XdmBVyOE53ZaH0a6Mr427O0E6oeoxHJV7jjSBeI4hH9RCPKpMCKPXFv5n2XJaBvo7YF6XkTmPXlIQ6RNZazI2cdjnT8ZdaEtM1qkeOVKJA2gtEWL3YaUR2G7aCaIhAbTtDe3MQFMThwMzJJ0N+cFLHNQOoNK8N4/dW/CIm/AnkB+N76T8yCKzFsaB5V4449RHygJCjiOenhkT9kT2nqZOQ0plGP5UjKVYEQZBHuFQhXOaLTYm6qZUEmDSleNeR7RV/eBwVOajZi5eJLURitNCjNI6wyr91fkwmtpil/C7LxDJJ96VVD+WNyBHmyimJ2XWowQk1X+n5Qm2Z1GCKb5PMyjfKq2BAVeoVLkDvWQiGaFCjuPBGuDvtwk1eFOVwhHF74ghDbIOPlALaXCi+FbZH/L+ZThu8KWSa+BlOFlJdw2CaxX7PpI4m/qtkVHFREY25G41yxIxlXL4KrVT1tYsVbvwPSWTnbnZXYAxjy6AibFmXXCdlV2REzV2O1GxJgNPnRP+tiayN+qn06VVmYrHdhtH1bSxsQ0EqT4kHqn+ZkGSe/Ab2SwWQ4RjtM/ThfdFWrw/b1epX6/qeNq/WulrXt/SfgXLfu9Yb9l/f0q9v6de38N32Z9Hag7fqMgpabGFeI/RW9eituv4CxdQIvVU9eqsSi/WGAFPvEwq+sNEBBb5UHP1dfudF6IO6lSUxkwR8sBIax+9xY35f3ukdVqZOKSpsSD/TcwbsS+5th0AAUMadyKbx+hfMWbudvrzqTPWwsrq1EXdisdb0zyfClVWPK6uSB55vUB3JA/PHgD9SSAM4v4Ei8D2fFjdyyLdRJpynWBVr++5UkaiihStVPxIFQylSNUCgpAgh9CQKbadRTCr0OfgmIPxrOl9eKvVdx0Nkr3rAWyV6DRoKEV1OvcS6ZhM27ueojq1R4mkoQXJl29LUMj0Rwn06YTKc8IYqyd9lCqvQhCzUy0ZBTEJqSJ9LxRKyc8UMyy+tB6iUypunt6PwgIK/PHdQfqP4AZ5p0qK8zGWDSuWUs8QWLi2HWj9YjNq3It3PFahMW3WxA08thfmzzdzAXk0x7/a5DoxJgB1qOEyJIPMMakIWeouQqC7iwepahbx/qkOUutvd7HdThOdHjOMxh5UIQin8ftd6DPR2bdhFbjnI1lNim9kVSd0vafDjSwXswvOkt083wZjVysFbm3Au9K8kp5+WyelD442OKHB2QDAAeVxsRolvPFOSXGrYFM8QXx+9fR7TpkquVqKhX6YCdaZzHHcp3BMdnbD7UN2/mdSD/UCOKYyE0pd9a6EedaJaF7Vs0x0uFI6zJJGErYdCcTCIviOCYETT6iXYX23oIV8BWBfk/CHQLQFCwaMSMxctqXd/GuX0B/XB2QLMZ9ORgKYM/Axqi5Klr5RdhLrJuJT4C+3mE6VvpMQPv6hh5PPOEYxeG8EVZhvDfvXiO4Y/+2aghmcCAw39MDiw60Y2nwmEdPamvv5sGvPyZuCYP2+U750KIYWPCN5Y2WwQdpGniv0BsjXS2MyQitS3UvjZvqJTBR4PgMt1oTZN1g8hH3+udEKYzVdDFfFNjX08y5IksAm+VlJsiKNUUiCIyZT136Ytj7qzgoJVgokgmpQxWgQUVvuK0jhyEf+UlvrdlAWF+V+dppkOsNnPF7frZ5ZGlRUo27S87g+l2wnpW7OJqGjyiQDU2KiLryYHHg1Gm1wwnpkJjyauW/SSmBKt3lshXA5eS8Q3yMHmLLTi5kzEXrU4sSpFPI1ZkTfj60LI5y0Wrn0OVFJJpax+VlDqnE6maUi/wOvrktOTcjZWRNvH6LrZqMJYHsGZhz1XQpgXJDbCXzuupLN0PBKVPcxUkCJVlPrdtm1RfAhb6jeVo2eJGEW/kcccSh9zEmdu4OMjZ8+6jvr1rgrm5Rc61zH5to2+SH6L6EGeJ3mQg+xroTkm1PkfP9vHpFKebj0WFLDubPEHtWBQppYK/+QEo0RY/0idZC9tzplnsdJlKnXMmuB/ZdYECEWGjB+2vW8cZyiE3uW5QRQv9z5yI2mdI6dV6ko3SsXzU1OS388Nz0fPxIfj1uK3fBtS2fa26SBFpTETPzv+SIvCkVSXGuYoWNqHRnCD8BwT2pUfMXbGdIwd8mWZYQJYlsiTf43ZDsrJg9DneqKcdlSWGe9wjcLfHdereWKb3o93YNJIw8GrWUiD76X4E3dzi2koriepJ2itiuzUPmuZar+sHajQr6CGU7Jss1a02YlFj2u9nkHOXQHQOI6CwCJzVbcrNAoZoUBjsVC5IiEsEgTp8gtO/IPnWzgPqcKEca5fWRpvRsuwjuxYYvRdO5j//kxE0D/MDuORsRXR6saUo9j7KN2bkdDONhJQR2JBSbrC3OD3iWjpV2yOJOcdQ8BL75j0Mj6rVY//NTYmE6IaZwKlXC1+BY9YbxsWcXrbFTWAkW1N1ttGgGbuHbV9psYC1EH5QumWqrfI4zlJb98063mLNBSUoxyWW3uhcKuzV0fW2hQwHn+m98hsweZKCAFSe4/4NnuPuG5RqYZ/oFfa2/VKITXFV6p9ha+UbgGPV+pOk40cDBiFR69UvbwFSID24yGjU4SZg5pHuREPsr0t6L6a4i8Eo7SgpWZrOitnQ6z2s6YDXHXpBtHhTUZStGSR5BWXO56qswmpL6VSdAy3hR53onWeVnTAwlT6o/Np6lq2+jc+Qqb02iPd2Tw/pZFrsmc8/tXLFWobnnj09efwn8aX/Bn+16DXQQ7D+p/Dv1Bp7R7+lRtOvx732/C/B7385LpFxEWLXaJMG7Y4NxE28VqDlu3ts+cx/raJkLjIcUnfIx8FPUSi9o7w/ricVZksDCbMaCD/OyfuiaBwlKP/GuePN5P9m2HBO0eKsi0dlyGsNDI0pdAazRayHb+ShWWoA616nMqSbO3PkRvRomzIG0WRrll4mUPoHSBPqncAV+G2uzk8DLmh7mGbeGIaubPoVC9jdNphDXkzluvYO6+dvfKAKSvUyvF7bCFK4/+y5lDz8eyKf3YCPcZ5CvVy2zEKEvzOtBI0C+46x0Cix0GzMA9zQGu5hLJPuKMwjwaLP0GOlr5lawJy+FoSkDaTgGCzKI8C+FoIGCwob5/GFebBNedMfx4BONH7w+ymebpWI6uHuhFMgvjn0H68bi6LG7miHbdTrv8cKSc0EZvJYtsrfp/AVyi4hcqMZM6xCVG0Avls/nxkMmwSrsVEtT1h/X6qu1tsu8v50eAz2Y+eya//zTOXmphLeB3rm0r2P7qf9b9ZaVVG0DRzrNV+4jxihatlQxTgX/2ulO3OcfJV9aSc+FymnvwNWKFtrFNx+3Hj3d84a8LQ6wlH7amj8KFUK47U4xHGbAyLlDJCtAzcKiZ1CXULHuGZiNYu1pR74SqXjniq3vZiK59zOLfCXq/8CkjrzPqgg4kWCBIohoV7j7Iq0AbVAg9ylTIohMJzqW/l8i4bZz9FgkSpEcxJabEiB6fUCLJ3SojsoZgHR2lE5t3i6VOE6Jb9gA8GRl6iHxeWKC2MNgVnsfQHjqnbnOTRWid9kFgZyHQ+ZTZjM6aXswfh0Uxh8FOlMPipUhiwJWAKQzsXRwVSAvvkLbC4Wd6C3ofaKIBMz+ZkiuVRGQo8YMtQyNSBuw7diZQ+sE/H/em8QgMWnexTeS1V5Q90Z8wfYBwpfXBafILpuVUNP3DtNBmTOtSthXbkI45cP5zmq1hucBr5EzIM3I+08HJQ9DMCcUTRwluvJHCf1SwZ4FRLBaovHbDlJlHP6ZvqqbsxQMMWKfx1+0wuLNjk6eDNQSEH7tyu7DqChNyGUBd4zFrNHrrRzfPqmgwRkKiPn81S1QX1NKuCIvCW23iz1Rgp1aFwk0FXobQv5X7h+6RscDoRK9Zue0h0iZPlyNnSqfK7minY6qQBI0LziDnrOY4rlZ5lCM/l6oKAWU8Laxw9mRiELpJVkcuUl8tkdQKJjHkd6AcLQoxlmTWQqm29HiUSHKXR7aUzlUEPZmvmu1nuZlXz8QaWfwPSgB+xm4C6FdJa+RwBOdKnxJa1QjpvZdWEOqZN+UhU9wHvP1WX/SlJFB+cVOTJgmI1bTT6F2N6DtbUJ5tNzcft++OMXCBegC/Wm08MxQIYtUy5Slsdb9uKDz0fPniGMczUwZIN2tuFElXILdVvol/5ItaIduCnpbPf8T1BpCarO2QZmDL5GqyufgfXRqqsdAp6kpaIT3lkqYFAVPMkznYcJhC+tPb46fnvn24Gt7bipF7uhxD9doZW34lMwv0UpMPc6j9/uzSl6corK7n/39+MPVKmfvfPxwpLf6zi83XNs0ebHDFyi6Eg6m784qN3m1f9WGzdjDkPh26tlKVZUCOnN4ZeTGzx8DROnWDQOZfid3Cbb/SjzIOa5k35WcmoloOOQ/jDn4v06xyPrcMzWhtZpG9oIvXaEtjsrfF0SdtSmr1PGVF+CrWVidDiG0KNGJFEpXGgCqeEGXR6JFYm+Suth5C0zSySogZXMn9HV72URjAPweXmya9N7h2wQQwXmYj82jz5tZHI+uoxoO6Tp5TKcVG4l2UDmKhlLyCKDXu8pCtfKQX+dU7iw1xTkMk96vkc6r8ZxkTnv6ozMJx6GM7Ae6luSTSAVZYsyzeYg6O/c8vaIU0rAdk6aeHDEizLEW3KDYCzoLXj6SBR7q4skASwLd+oOi0+7KoaEokhR981D7Bk0yiX2I/N460WQZxUmVNRarFIQWG147iAgKpMwf4wZ6kwc5osSBQ299WUdrua+W6Wu1nVfLx5H/pnWVK9mG21iLLcPGW5kX88P5Xu5P4KAcqkecJyk+dKfSGKqnvQqILKhrC4o0MHqDSfRV9f/u8Ff4vHt/mNWczm+aJb0yJmc/PM5iZm83zRrbFuwhswVDDQMIipL9nzzSOYR74QQ5cWcISMA4j2YyJ0qS1kIjwMOjlkY/s44HkCdZMHDKwe43sNECbNM6ibGNQwHIwvcvEkUjVPVqRSVX9HWgybFuI51s0QnTFljUm+WJgpB14s2ZTjPiBPR2SvlL2HCSSX/CpRcqSA6wE7KoayAw3ScWwyKcQWHthmtpg1vSe5tHnOdyuCjL5wrdUtq4piSZ2jS4KE1aAaCSy4heFAwXjyUfAMzy2B6THce/t2eo2sav8nT8KOioiLlDDpU4gN7BmPke7J5q0I0/7CjG0R27x5tnkT23y+MGNb5PbSPBW8iQo+X5ix6ibMFs6cTHbmdT1PHT1OYIEdIrMaB2ex0uRtsI3UTnE8BpGIzoRAZVRGpC6mWQYUDUqhj3ye5543cc+BHQp314h93jz7vIl9DsxVAO9SrwCmllXBLqb9pCzzaR8WXNU59DC4SxEJUJnFGnbWkrFNN4khHlvMCmjYvokyKm3LvshTYjoTi/Phs6SFxZ4y47DT1JpNpkh0m2aWEBa4+6A0E/rlp9vooiroCi4itwP+ATAq5pDReYCD6THtkvQpvRrt08rYGBcrVRsgfEF4WfZ3CxIJnamnqXPhpOvd7Hdz3E2CltVc+vTx8vxeQRI/kv/4Gf7VHYXHNbt7dfhJ/3x1gP7aOWAGL0yYYWSiq0oU271DeQ1VvgfEx1XH4JzPWYj6vtd7FVIV4GXCw4a9a4Q+/fddX6+YWRy9wftlZ12QReQ2rzcsqNzuwtRkHl5+h0ClkYWGQE7Xp/dooN8Ub/5nNGRW3/Uya97/0dHw9rLX3RRV5fmy/Z4ugQYQt8JFqhoiVObdrFhi7SZQAjkK5maZ0Uoyrh8/Mp/a0bCq3VKdllsH+55loZ1V+rb/mzMdmLHLdYJa0r3hNSGb2dz1bGj6lEaDT0pF81oSTVoS84WI3yItiea1JFpVXPBCxG+RmETzYhJNYhLwd48vEjC4mteBaNKBmDtWpFD3c4uetFina+2aBPnyHQBv2fS0z2b8s0VvBmkI8ucmhQ+TYYFaf5r5bhZt3I/79xutJCjWC1tZ3b8uM4n2V1cpOWfhlPJPBVkHLiTP8urHz2mr9vvJuxgGXoMT8ZQhZ/qPP81dQP6tFWsfIJiONkaTKrKKwBjysn629j7BGMEm9H+Xy/1KzIkWNvu588VEF2sZS86naq67yR0Lq9qib1F6nva9LkeTLsd6oTuqm56qJVuis0/K5R3fAhqq0phtF/uzzAQlWT742aCvoDUOCWiRyfdMtHm9jya9j/VCgVT3e4RZCZ3Hiv53rPlfE2F6QZAmQZD1Qr1skSBI84IgTYIg64V6qW6RJeU0SyNDTF2mSpkiw+8Y39Xs5ode0cLDwI7yuAW/9EsvBEmm8BbYfd/C/cVLqz8pI/+5W/BKIa0p6wjdsyjYjJRCmlcKaVIKWfllDYyUQppXCmlSCmENK7xItBp7pZAmpRAYUsUXIaOtqKgnuHb+SRezfA9ul9YypTg5Mbkd0tQT1n/9ZDqvPCljf7BkVEYgDHLrjCi+ntKujaqZODNoP8aXd8EBB+FKcpDY5L6iFJAXxEaQNUUzxwlUL3XSZNKDQ3z8FJh5I6cCmz9ur383gipo+uxv4UpSmpqPb/PrnFRRVnnZiyNVlOZVUZpUUZCrCnO+kSxK87IoTbIoqALHdxKtC14WpUkWZb3QNVski9K8LEqjxklBiBpOq0gXpXldlNZtbr7UciJdlOZ1UZp0UVZ5mRHsZlp1TasiDO5Ch32to24zeonMtm+RU2GvpgnCHhM/QJPogHI7cD/u009/Sa+s+nJWj6RXmpdeaZJeAUohvkiUevDSK03SK6u+zB4Z53CmUglL9YKbHstClOhYg3qrTVaujampSrmN/KAfNS/e0iTesurLJtfHQUXlY7o4LPuNOyBGDLjATR9ggqGygZcysVNlHLnhvE5YRrw5GS7A/xWebPY+BSFUTSoPUdjFkZ5mMl3HPlAmFpMDmZIBSWCeeYIyGN5kYhoEll0MX4AOWEQ6daTYFt2NCyO1uu7mNsmCvJR44aes5Fiz3H9Q72az28+LqTv723E3p6LFx7vwq5M0cFD6jd9FtDp5DZwmDRxwa+OLrDMT57CY6x/iL9nOfuOH63xnawlJYrr3l+GcaOynZM1Fdq7yu3n46TQvuNMkuLNeXF5apLjTvOJOG7YU1ngVkyAP2ZM0LeXBmtA0hoOoBW8ekZiw3KKTY2yu9gFy6HHC8XI9TXI968XepUV6Pc3r9TSq4fCcECh/tRFFOF5Apw0p6K+44BUJ6DQvoNOohoMnAzSELxJH+jnN6+c06ecQZhEIQ7RIQKd5AZ1GNRzU+gMdnxbp5zSvn9Okn4NhHFF0WySg07yATpOADgqm8UWiLd+L27Rh4zx2um2Ruk3z6jaNSjVMrgfSYS0St2le3KZRqSZDbiGMgiJ1m+bVbZrUbSghOL4PHGQkbtO8uE2b4r5+Os57/grRQPXKNo0qNUAShYM9ErZpXtimmbAN7PuiYRa5/zQvPtMkLwO8UaC01SL3n+aVYZqUYYA8DKdMpAzTvDJMkzIMT+iB2FOLlGGaV4ZpUzKW+aV2GknDNC8N0yjL8oqUjRx0mldyaVJyQYYQ4GdfPI0cdJpXV2ly0IFeTzjcI3mV5uVV2rLA8WUFiCx0mhdCabLQgcBK+rbHaI0cdJpXMGnL1tWX00fkoNO8vkiTgAhqtxOISn+NaLR6DYZGPQWcKCMlxBZJMDQvwdCWrasvEc+y4rhMD5iDGAQV2rlgH7UxQXCQRbqgwaaf0MkDydKIbbKVRk7pceD00g5t7T83jsiap3kZhrbTnxtHZM7TvIpC2/nPjSNSUWheRaFtW69f4kJ10y2x3/JYQF5JTLswLYyST5UQxDq1e+QKNzMOhDoDtG9BlpErqUCwU+hH0bweQtuaaG/gg/1blCYgsLS7iKpIFcSNiuiWKcFOZBUS2gZGBVMLvplfMHJ15yMt1otUY6X7qWUO17Bs9+PG/eTeOhW++Lio+xZeYpJTAmeX8hKPLdLHwQ+bpJ2YaTcdUxujbEHFyM9u2CsC75HmKchNhkZw6Y7vjskaEg/zR/iE/lGmvX0EhzIbeCo7qvRj0sygkH0oBETKsSEZIUohQnIDVkCMDVCDKmvVw+Q2aBOThbNDXYgDrtL+UrkrFNf4NIC3xrWtCaOYRqhUJtZNSlALRgxIkT0eiF8CZc4Eib/4gURroOf8NpkzodoYxh+ROVPzTNpm5kw4skfbfuTO1Dzpssmd6c3GpUXuTM3T/HrSajXivaVH9kzd09+67JlQB4kvEqxW3TO1OulHEI+MNpceuTN1z1jqpO5wHQjACT0yZ+qe7dOTTep41ewp2LK7Z8/0pLn34l3TU7Bld89k6TLiWTMW2uspGK/dswq6bHIg5RGE3D0Fw7V79H2Xqw0g/fGvCYZr9wDyTkg2l7R2nF5+LhEM1u5B3F2eNuvFGKdHnjbdw6F71mCdcXmm52iweiRxlw8NkBLxRaLR6lG7XT40UOeLLxINVw+Z7fKLWS9mNj2CzHYPme3ZhuvLBGa3kG61/3gpUbFNTIm1LDekjYwKeSz4I5q6M0eLIH/oDuzRjqxipyUUa7WLljlPp6XusZ5dWM+1XmZYhPXsHuvZszIFL2Y7PYJ7dg/37PKnWS9mOz3yp+kexdmF4gR0Kb5IND88irMLprle0H098qfpHl7ZCZXcSM1Fi06EruweXdmFrlwv3iA98qfpHqvY5U9DB5erLP5zjWh2eMhgF2RwvfiLqFvYG8U+YPxMEwCUVN8aB5wAOXvSfA7jEagIwsVBQpVczxY6HOEzkEEUMxKragl5jz763ls6XWJKi9BxKg8acyKJciZ5AcCnSKYbKPgRs00ABIl9+yDMgSauXRoWiIbJRetG/5smdJCI1TZxRfALJK6IxK/kmmgcT0Q2MPDVUBNUFSGqVRpJ0HySRhISp3pSOJ2RN3fgdyC3b5JzG1vTWlSTA0OrnziQYhhZbCt8SIR7I/ZDsHcoJ1brRRioryOQSB+Och63mfqJEzjOdWQmCEBDXnqUau6rudPdzEaWzovaEPZpvZvtbnY1H0PRr7ECnkJOLcpJ9Ah42j3wtAt4ul5AQepW9Xl9bhY1NYuMxTT3Ia1DhszqNONga2R0aFIm4rtk4GgY8/eaDdCHEnQRT7kZng9nVcFtyGqoEmwoZDoUDSuCCifvSEgxJCOGQUNhG4cSz6n6lGVgP9BIt/SLwI8iYK2vg9sjyVTQTUj65pLFnjabRHCd84HwUSpUED6UcCi7WUSZEISvs6SzWQ5J/vjXPZ62ExtL5mxwElBvN9buZSd3HQdJyIIxZqOoMBSqkRMhpakj0lJrF/OVq0xo7EdNqXuEbifqE1rsEQG6G0JXpn2bXKczMrB7N575IQlEat1mPS5/oCqJ26wUDqbO+37AzbvHm3ZiEimVHO4l+xjtoah3iVNWuklimdV3DpoK6okMuQ10ajJm4LEiEeDusZBdWMj94haj7rtYzcfSRN2uIh0TMkUtcL6RbTIYYK59VjsOY1neT8SvcYk8zRqq4XePYezCMO4Xdw51d4PmSpEtS2sJzlVaIZHxaEYqlzAw6KjLdGkpuTsvGZ52yA3dBJn2sq0MrBRuSICvcGcAt3gSncfibxKyI0nGpJlEE0Bl2uYSjUH5H4VwT6LIr9MqEolaZ+dDVbVKchLqV2Jgn80NaY/alZ7Y5h4PhaMuaUUAA/irj5oftFik5jeOMDCSwd0ew+AfYfkf5JhPRm9KdmwCohKZ/UCRJTIvuGJ8axusH+ILNp2+dD1tfJjpfCj8O5N40rPpl5Revr6ash4nDJCMLivcYppRovf+g01UIf7XlsLUkCqfyQ1vcrr0IY1QsRhu6YHiwyytAIL/yvVhvVrNVvpMtr19eH0Pf9Mjw9I9erYLPbtfoFbqZiH+s0xy/Db6ul0DBPhj3ovIJIC5+dhk9WV1Zr4QsCciRfLuMbldmNz9osFv3VxrN8MzrTsYkI2SOENKNVgV9zT1XB2rtRbhVue3PNKd3QN7e5VXeSxkrN4TxFGPEAs0Z0jTHE/ER3JqNy3i6DIRlnyYq4CXUigBW4iAaIhOE6dEVpiK3ZfTEYgT6kpAdkQKmbmZbKhkVzmjt4lZkLVE8YxZikkTgZ8i5QppR0r40eJbeIZI4gGYd94EVI6lZbHaUQOlNA3lH2jrSLmFDmAtxRgZwlJNARNaywLxooxDwZ2QghtCzEqtToCTIDyeyLet0r0Flk4apT2bbCggd5hvCr8r7wUPSXoZ0LfENXUHTfraQ1wuqXY3rggDafAkyVecFY4mh5YoeAb2Vu2u+s72KyUKkHB+b+e3SWpJb/A8gzGkf9ZsxYIF29RijmCw2k8jDIf4jsEHiS+bWmhRIKnFeqcEQPoRSURcp8UODP99ntSioDkGq9RMQVZZOlAATlj5rnolkgJHlq7KyxksshUX/XTZ481ZmwcTvhxYWyHaupr80XNLrdz+FGAevUdONfuUoPUvJNLy5mZjzXY3u51q8maW2przbq77b3ljCAI341f9gcRh1Cx3s97Ndjfvb6v3t9X727gRW3NfzXZ/W7u/rd3f1u5va/Ztj3XGHzgEwIdRaLziHbhZGkuiV1uTH4WGzPkt25/bcnURq4xCD0CcslL9qQNBu+tEPC12FOwezN4FZt8vCKgemUx2DzrvAp3vFwSUuvkOsFWTzAPUIY/AR3h5cU3MJBCwsNGlP4mZWwzjhkyXtKsSz05i/GejOyFRm6lPjeis6PrzIypYpr4xRWOynC6yHJckIoLefb6CZ2SMf60wmbpaUswqn85AAf9hEStf0ubb4H9YfRgb+8jwQHFHuGTKyXGochXIymHw05nPz8RZv7I0xQO3/WTKv0gpuK50uOGIyXEoG/KS1FOlJA9i5qUpa1+xcz5/u8WAQrVQxzprlvsP6t1s59aPkg9aQ//rMSz8SUhw/v1SOO8RnP/nw3ORrYu8DdAoM+cB+V2A/P1Siu0tysx5SH2X+eZ+qZOqm8yqmX78jn4cky9vozGbkQ7WhbO96+TiFpuT12Y1lKqVyOWEk9rj9rtw+/ul9Kju+yTM0cVkFJUksJ9NuR8o1IKwowrPlfJOUOBWIRXhmPlHASYaRoKeD9CJ7S/gN0S4wR7xAbrnA3RC48uoL0Mrcg7tHk7fhZdH+TcMBSPv0O5R8l0oeWgHR5asPULJd4+S70LJb56HootEiXCPku9EvFOCPbBy6xFIvnuQfCfgvYz2Nsaj2eZB8r1rtr241PYIJN89SL4T8A5pgghUpd5jIMWNAJJgN6ZW3H/o+0P8mLm2tpv5B/EZKf8GvSdJJnS68GGto2ZzJ9usCBE/22NYezx+7/LMWCMe1pFPafdg+U7ge68vYynCynePle9dIi7QiwlvpP1aUF5VpR8UMsVwoGtcCARCteh+Yj/qEfezk3kcdbogiPjN1LRZW83HHft5KGD+fgEG9MgTtXtYfResfr9V0tVtsqb96LEeUWQFC0x+MRgfQl7QQ08+G2YHgU3Xqg9L2mUQ02Lkwm08HYXrH71knaMIQZlHYlVxyjgE7csCBKntsocpkd16sZTeJtGgrUPQprgkP+sKj7CzMOch80IB/y2hi+8/qQfgiKrJxe4sHnVnklcy55l+gkzhF+pJsbUuhVlZJ+07WED/Jp26D24L+2qylgHCQabw+fm03M1q6sl5X9+1DaHzyHh4AH8XgH+/1XD7vMSGqtWR8pH+XUXvDQZu8P3AQ12Wm5dzC18D3lRRarLa6xptXrrllTlbSfQ1OQnszLUGYrSLr6YSNNOZQab0cGMugx5GxMInI7/rvzDBUk2Cs5EROLrqKtBTRrQ2p9HF8+a8fZIru6cpdNEU9ovkirpVP0DtAjqV1aaDhFXNrEMHvmWyycMmAQIB6f+ZAmIql5LE2PZUM3O6zAGWfCSVufYm8xJCbiL/qDbxHnjyRq9pTvRqVjfkqJKEgjSo5QMQezGdBgmMTp0nIsrEQAH5h3cMFRPeMcrisDHXRdaYJnlrOUNyjrNODvIVS3bFrAHCDGyu51hD7JR92lhTaXqPnFEUcppHqDhvzuXBrOLKd7PczXr/rVSlHgUIz+7oZGoM0Jnntz32kEsoECFLpgMknqiiwPXBkWXwOXWaKc6H51T3TJAuqsd+KzePy/sKJ0T+OD2/RQIshZeogthM/6xD4LJO24WopvpF/qWpYIJ9fA77v21L7hJ5C7lplaXMrvGRCFXHp/5neD5JF5/kNZJTN0sSlI1t2/KlgmGgfEEUBuX10mF4I2lg0fJI2cpKeZPSu7gsrthttXuqSpe19GuQyG7iMqlzRiUMOmjeXooBXgQM2EYNSyrJi1SUyYUfTJfvefhFHS7fVJXaxJYGMBFPjenylsZSFw+NagVTSPhd1U6ZVxVlXTFdlOxJlmzdIjSiUCGZOABIFPrVafJw0F3gKR6SGtTYxAaapN9/JFMwa827wpwLkEU4RhSlWu0eGxetlXjYN5ctLDgWPrRjU5G18KP4vW0RIsyGIm6EOLRli1BnWRYubyNJQXaY7BxI4/VchDKPXxpHSei81WNtSF8d7UyTM7neyT7+L+xlOrR31i+XPpM5I+v0y4RZpDJHvd5pncpf8NRJQQbwRLMJovIPJdfq2Y7d85q6jMH3i6CHuqn+XxcrXvXLA8wwt2JM9KY6GT2vCaedwgpjUdyXQsLmQH0a9XXPk+riSb0eT4aZAxEey/nE4CvVo31ACTBCLK6j/U2h/bHmRkrV6pLIgp8DPSU+glO8p2J1eZm3F3KKui9i75VvYESPXMLlL14oQII0lhZVoGP0XGlyft2wnmtiKpbP9Qke757s1UncKumtshuRvbone3USt0pKb6tEdHT1ZK8+dHQtkddAj6he3VO9OnlbJaUXKFnE9eqe69XJ2yqgaIZZhYjr1T3Xq5O4VbDkxReJTpOe7NXJ3SopxTScHvG9uud7dZK3SkovuJmI8NU94auTvFVSeim6RYSv7glfneytktJLJjBifHXP+OrTxmtsjdwjxlf3jK8+NV5zerlINF4946uTvdVprvBg8/WI79U936svjdcc0wp7RPjqnvDV5c2dXhRjesT46p7x1cneQiY5Yq/1iPDVPeGri/AFwFK43kWEr+4JX31puL5IyPSI8dU946sviSO1OJMWEb66J3z1pdH6IkPTI8ZX94yvvkzNJwbUR4yv7hlffdlgfdmBI9fd7qlZXdQsnLf2tza/ukbMrO6ZWX3baH1ZSSJmVvfMrL6lnbFjXZseMbO6Z2Z1UqBgwVM3tPv9NaLR6llTXT6xCP4CL+O+o8HqCUx9K1W3YzWRvqPB6nlGnTwbJLEjGkrf0WD11JxOmg2KDCHWN2LmdM/M6bLbg0Jt/HqjweqZOX3bYH3J4kXMnO6ZOX3/FQlEvJzueTkjpb828RHxcobn5Qzj5bxATkfEyxmelzPSn5HAiIg5wxNzRvozEhgRM2d4Zs5If0YCI2LmDM/MGUmRwAtEaUTMnOGZOSONv8KJETFzhmfmjPRnJDAias7w1JyR/owERkTNGZ6aM/6i5oyImjM8NWfkPyOBEVFzhqfmjGyRQJwhHBE1Z3hqzsgSHqqhD/qImDnDM3OGMXPibW9ExJzhiTkjtz92rBHxcobn5QxJ2acX0NrI0WD1TJkhpgwzlIGAxIiYMsMzZUbWYC3xCWlETJnhmTJDwujpRT5sREyZ4ZkyIxvtMY7S1H0yBlK4ax+ceJEzuw6pyPgqPydPUOS0eDYlJFSE1dGpl2aw30nsy54+jTc8C2cUTYUSR4AjYuEMz8IZpNRUyHUiS1P8NaKZ4Fk4g4waOAiEMyEi4QxPwhlFC3eJo8gRsXCGZ+EM0WzSi5DbiIS7h+dPDPEnXodxxJ8Ynj8xRJB48UIZJZoKHvY/ik2FuOQzIhnt4UH6o9hUiOOMUaKp4OH1gzD3kl4U5UaJVm4PjR/VhuvLoluv5LnUAaalcpTBBXCkEI5Lq6OamAv/LGbC6fG1u3VSiLl9oblVEtTYiBQrEA+I0lHDY+NHtcg7Vq2z7mOyXGi80/9pTQiCkKG8ElFeVWLRyqJtw/ajHlepNAoh0NtemahklOZNAnZJWGyzXDEFVlJ1oAAS2WhmWky/mLhXAgCs2e/muJtTzcez8FO7/qUapV4CexIdjyiZ0G4RviGGRR4/2hmSqsXPkVETksZmxQTgZEl0sCEpLdX28sr86lG1etSXic/uJnvvZfcCpNhUSaIcrS4oC/BeoIvgy0HDA6xH/UPKaty6ycj36nk3+24wl6akRtY2jGOHirWGCvLViewTeDfaDZWH4t7wSMxR/xTGUvdlE0C0Huoztzpu5ldmU9hGCnoRnQnpMd1bOdA708Rd9OZAiplfSx1oe5vjfptlemzE8PjMURXqtpeNP8JnDo/PHFXOAyCXhFN3HvA9iqcGnKELfTM3t0XAIVPGtC9gSY0ci00uwOb6koD3AJMLRa8JT5XHnfl1mHC/AjJHfGcqSleSyw7cJ5DQGyoH5t9iF0rHHMS10CCJVaNKS9dFjqU4zwUG8D1QCxweijhMOjjFuQd1d6sDHGSvahu52z3OfPmTAYLRE0tumfL8ysIXLmNAlfDOGDg97sxvIqYonOJEgrrl7j6oLTLEQCoEvuvOaIxKNcvU7Xaw2F5OovSc4LOjKQPW6fPsUIQq0vLDXxeqGB/9qZ/b9ojKIZFiqqWHt83uwfiwCYhD3Wn5nhptrsoJFBBfcA4pf9ONWFnbYVHiDRSzohgmewknP4NxANBB0ApWG2GdoJciZWsU/CqtLXjlRs3wThMZwbAJN2ZpjyDiRmnfTjgDrCK/hMYsFpCeLlzDozdH04n/RddwRKrLw6Msh1CW4A/Ej7aa+BCJqfzhTWO2nAnWqxnK7rRtjECMCLSxRtJTodInDRilJQswKQcOaoxYJBr1jwsApNhPHjftdw6hOjEA45umyjOF4qckcsah3SwbDURNkExKoP5lmCCHMKKjGFpACrnQWA1gK+Kg5fNKI7g9GUvJTr7zYAKwB34StnKocg7zVbj8Eegxp89K0kTavqY/PAR1CIKKzT/+xccsDZY002q5wjGBNiJnjDENbTbpt9FVwZVqvxGKNTvEt+X0ptoqhF7507HFCd8F5q5CS+itpmkCr3oahXgB+k0A1UB0CwBKk1LX2NjkjgEHemHLYavF8jm/TEtIE6Km2H/malJJISS3tJzpIpXQ5yP0O2TTDtlfTrURAHd4AO5oOlT0l0NjBMAdHoA7iKYtdOYNX+bSclbl4iq0nZY1MFRv6wXJ8QPHwrULzADzwWnjx0pBKxZWtqHYuGPWdfNB0DKGU/Wm0vyi+y8tFUguT+RZ010h8z0j9syZKD4QKW3JIx6kXTYJts7hClzndAUubuPbihdtHR5gPAgWftEXVSdhIMUc4SHuxSfVt2EygaMQ+mNiG8dOs7o4w5TF5T2hEJWNXM7nymBS1pjwUjZpLNkGbnMJJ/WQgBIMcklppXyczg9TCwhQqRmA7QFCYxFHniaeEIHYJGaMiV5ZI5TPLufLi/ggKLMzDOT/fjw2v8H39Jc0nrqvuEgWaDTpOHAfGWUcoAKiKAWzAHxItg9HLgWzxC3xq7iuWdyKWAA3HeF+hkdvj57/UuFT93/x/bbofrsgTY/79Xuuqam/CP6p+7/4fnt0v+Pl+frtvetk90KtUffZL7SwJIO7rhMSEchkMKRBkIgt/wyOBhYS0byRQsiKwtBatpqT186phqBWGFfmI74gafMEjuey81nTCVwqxJOTj2ifFi5jk/5OEioCGrvJf4ZAO84x/kGjCwP/oLdr22Agx2ZJfRlMp6S+r6ZIcg888fDg+SHwPN5f/FybTkofsaiF/5ndZPWhFy/Gcu7reOwSWbfN26WmoyxR4PoZEWaGh8ePriz0C5tnRPD44eHxo2uXHC+JRHafdK02IMa9bRtl6YfG9I8clJQi9AshaU+NQBCgCpTJwzSFB3GPrs33Bf9v3RZW3nqOJIkD4XZz2KvsrqBIeGk3Xg9ft0amZOfke2LFhgdNj6484QurQN3P8+hkRm7PD6FiSCtlDov6S7O4ZbwIf127/kO8K5l416hKNTwOgR73O7rSkS8ygCNSdR8eyzuk6p5e5PfGiLLnHkk7hgpJL/J76n4i13SyqJf8/SYDYprgrJ4NgPlUwOUGOqndQp6jpABQKiigz4YDzyNqx9BJ60VYz7ottO2H10387zDL4mHqHHtuOy0RO347VXOzbxgHXdZK8qEvjKZIbWfYQng7r7tIusFBBS+B/tMgZGTLimWObvZXHcNxJkuT+aTHD/bbhuC42BTCMuG4nKqRK5J4P4vGgM2To0uhjCHvYSXgtIUhK0ROTEkEkKcHIWF4aOiQ5P2LsLp6n7YJ91b7u8HipYCKcm+wckOlWgDEY7T//m6108DMhdz/b3qsBR43OgQMTS8qfeo+OarLm/e6cY0OjNX7xqPbRQWMjDMzjuuU7bu4aecXPO7WL/hDC/4L3UPddz3uWufvNJVSaa1vS6URGH+V5m4Kq8RYKftQ0roLC8uIq4879cu/QUhfBPzUfZ7rZX78XHSVOMMPljtrMV8mW4CZQiV6vfRD76ORqFZq6nwGDmvDg1WHgVXXy3Ys4wLukPkWdlKA0Mq0sAApQMouIr89aA2XpQ5zkt4FSe7x7flxOPDI1yHka3rhX6j7P3RHUMsg/+c/e0d+FzEg7Yvun7qvDSAqavWdDDstyUrq9WTaJ6rJOsAk1XOVA7OWkiW9inTb6ZmE9HjdYXjd9bLFR3jd4fG6w/C6L97I6qZhbBs/aetrSRAXhkI7iacKZKtzEqEFLws7otEwNnlkdIlJVvrDunAoGWjm+BThAcLDAMIvFqUjAggPDxAeUxL77QVHw+5JY7WpgBkaX4p+KEilmBgMAf608UXgXhJZ5iU/9jSPLR6GLX7xHVU3xxqktBSHDZwlVjObRT7wOn80wMXK39VUUhG5J4H5+zUjynxEZB6xPAyx/EJ+UPd/ZGL+TEfKEWMO/sdmpsc/D8M/v3ijjgj/PDz+eRj++UUGcUT45+Hxz2Nq1dpvUyYKVz0CehgCer/scutaaCCDoSpjb6fKiPBRFU46yHPJqRwaPIdD7eAOcvyteBz1MBz1fImtVv5P3Mq67MdM+W63v27Fr0aEVscuL+q7CrCq1ODH8wvnR7aUcGf6rclS+7Dvn0rse/nV47oHMdoF5cH4wdRLVC8r6UfKEfVCsyW761aGj76KZqYoC4K0Pya10ix5h5yfknc4HCp5N3Ox9B0KSPKgralaIg+MpsX8BwJdJfLGypbIQ71XibzJVjPfi624EQL7JDI2K08XycSa7Mt+RGoesj7MowSLfZQUXe0YwuHcoN9FkhzyJ1UPqh16MwYTQzmkw+WNZuUx5IqU5mxXmjPJ/xSD6tDPkKPXM+tj2jPra9ozy2md5Ge+kp+l2TODLpklP4s9MtBzLfdZ9nk+VYpU1Kgtl6UvqkeWG81XavR5iPNg/bH+NBNS9/OwyYcDZMXF8PrBYlwIDPwai3L5BUhx/KIycno5ano6wBAdIL9Qi6zbYHP98ry/3BozZSwQeEfRkvIepZigr0HmOnUxH07lw7MMBikDb05K1ssKT79RETqHTcTcl2fwjY+4bbB/8BGKbCpZsVz0qB6m05mDR8wRulwPT24Y60/vJXUHCJcb18L/O777L4SLZ0MMUhtKfvHWVjfLO7NfMsCsYjCrydmYsmYuqmuXQjCZ6Z0anuk4Od4iwPJqhFkJ/ewBidDsxduWVAQSS031PqA8WcGB0t+kIDRhGRKErt3mMVQWsd1Q+3dR2xojTMsh0sNSY24m/YH6ebaKUt4fkdIhBbm18rE1rs+m6Qzvtc9FtM42e96ZmJuSkzjxzxfuN/xtSIf/j7t3W44dSZIE/4Uv3StSkgnHHdVV+b7fMLNyBAyCJCaDEZFxOZdqmX9fQUSYqvnFPHCYVSWzKyM9iSIPHYDD3dxMTU3NIIwMhQoWxeG+IW1Fq9ghw1XkZImy3RV3vBmi4rrHi/paAl1K5Hjr3H31vW8dGt1i0KprE9A4XgwrVtpbxcoSuyQXS6pipQ0rVtpr+Um5vEN6kFtByz1jfVU8G9D2tZHc4nBvidy09V1jbbgJzS0SMNU9ZbwYe1ffEPdaVEl6sTHLirghktfY7JrFXRJxrrgG1R0PwaucSHG1A9d6dHfT/FhOp8UVqK8dlMtrk5tf6gW2c9e27FVMEwhLb9p7wyKjp3Cbqr1pw9qb9lZ7syg7pGe0Tqp53Vy0odbIOAk76Im1TMy9E9bCZrgT95ZdfYtUyyVhn6Qzh+U97a1PkDPK826/vkIt1VVy4ibn3N3u292k8Jb7dr9c9UwXdt8vcVAcFgS1w+24Msro2lRFUBtWBLW3iqDeGXyp269vDauuyjtLMpm0u+sEL42lymtctsjh3sScyiuCulBwGhEhumaBbmK1i//RL6DKNXdcLpp9uKxul9GDh6fKrT+Q1Yzv9mtxoZPUxRRh8TbeTW6mv0Jmw83RMfzosKypvRYpWd39br9FfHH9Z78s88RIg/HF3Y4tmsYaxb1ygBIaum1YHtUV0tw11STw9lvVcvpqjhY60XU/LYX+3D30upwr7h7WtbPwrcT+Tqq8Vttrv8ulc0tdWIPVFTfr69KGs0vVYHVhDVZXlLlWhLdfP/Ayqlp2o+VmdGHVVnetwLKaF95+iw9+/WdXIfd/wgfvwtqv7lb75Yy6vC5V+9WFtV9dcTdl6Yj/9mtlwdprpmNpHf1Txqy7l4v9P395mndfp+N5evm/dy/T96e//o//8fT0l/9++jLf/mfV/eX6ZE9//e///Rd5jqe//vdTc/tJWd7+65r6ftHef1LV7f2id/eLoZaLXi6G28XSpvN20RdyUclFIxetXPRyIX81yF8N8m/kFrXcYmkJdr9o5aK7X7hSLiq5aORC/nEpf17eX2fRib1fyL+pZMBG/k0jIzcyskzUIj51v7g/aiPv3siMLaWBtwt3/8et3L2r7v+46+4/6Qdc3J9nkD8f3H0ShqqSC/lJd38LV7gCVw5X8lmLUq6czJ9zMqxz8lhLbIUr/gx/W+Nve/lZWci/q+QtF4Go+1UtU+kWFYn7Eivkt0vplSy7Elf3d3Qdnq/D03d4qk6+jetaGa/DbHSyyJag9n7VY156WVVLvwa5wn0HWRCLavJ9nxT1IFdtiyv8rKtx1eAK/07Ww5JRwRX+Xc9/1+GqxxXuMeC38vSLl4mrBlctrvDvHH7r8FuZ+xLroHQyz6Wr8DPMgatLuerkPbAOSoend3hmJ2u6dLKoy7KQUcoSPyt7XMnflpWMXLYyCmxRWWHWYJbKGm9e431rjFxj5LrCb2UNXRvI368G+W0je/TahkCu5G6LUN/tqsXaaMV6XlOr9yt887bnzzpcXf/2f/8F1v36PxdzX3iGvM4bcliYTrboUMb2gLsW9mfJlGPPyM/6QvZCLzPJXbGwXvAtZdZwJpQ1/t191pLv9sv1/+k3vAJN6Xd0XHntbd8kx/yuh3ML4Tg9HMyprIT0aN7TLfFwejQYrrshTA3mvE9pPZfMai9HsFhMTC6Ozka2TiN2pJElpc4aOX3kzwd8VoenVia9FkPJZYLD1jUDPQQYXhpojMIF08P04yBbGoskjCyMoqMBhDHBJqxlQV+ZAN72Wa6G0pz9vyzs/KtOjvqgg/lFeWzKdk+O6q/eBUo1hutpfQd7iRTheNWD8YxRgmGq4XPDfJy82arrwlq1YpM7MbU8VMui7ux7OH+/DqX5PQp8jzLzPfxHXtQFP/PqSx2teqzKtrxwSrBu9acuZQWXBQ2iPRtl95fg27mqMeccJ+d9e6SH7IPhrPlYN1wdLq3Oejw1DWVhz3Sjh1v0VtOjVYM44TAeLb2Y28/S4/tLeMH10ndgaMJARAxtHFIgbrBjAs/lo6NHV44OHF20hGMG12uVq5ScBN/o9ebhM0jwo4MGrOtiwCnR0PWjG8UVTssJFwfu1v0gSj/n7751ts3fOuvsrf0r69zyLfAJ2sY+QnZ6uKUlrLFW2/tbVwPiHly1OBo7xFsdD1P7ZUrPfbD2CQPBhLvHk1qClvhYyrts5XKKBido86e+0YLldn+5ij/WXXDeLIVc1maNAIVV8IE4TD8FFqzY64mwv8zGmYwpH8SFayO/PxHvMbb7bHyW/LC/uGChmLtv3UKJ3JGyN09l9cJmaFWW/mIzR6tVIG6e3YuOiLI1C/pthAo6HjZtTdmEb7vQOKyT2zyvy6bxj+ve/Aj6uDYtdNn4R0lp+muNHBuDAhbgxdshV+CvLDW55qpZY7AGfzhnOujrhvvbr7M3oUtLtp/3L8svru6+1H31JTZ6TWlNKUAxBHXwtrsSNkaiZB1S1bAdtf1p1TN532DJ41lOGTFB4HqwMHfMI3Wvyp9D08y7zt4hVeAn20ei4JBtyWiTHjpWJ8zv3Qymb/oRREQmtt4DSSzsd/BM0MJFMCY6AgEGMZkD0FO6bCqwh0OnMd1sOF9F+E9ssQKsh9s6sONBmI7QXaFhpnmuyo/Z37vmF153gFShN2iG/q6A29qYprUOXBXLOtfifzW8aGXXAlcruFpw9gvivpQMYP4L/0sknywIqpeWC9bE4XS/ZzDS41XBeHaQvmo8Fxy9vfllEZBIeJEcr/Tft7POODGDwLjEV3KSNqlaXNyXfC0Ybi0Lucc+KzvAfoKFu4awmXhxruU+G+D9w0HvHL4uvn1VmMu4Cdad5X7TRYb7C69XMkhwWzsBKnCQKDsAf7MQyyHniJ8ToQGlX0oftGJmIPAyk28Zuj9NaW0w5oruZ19yPFcGxiTjV6wwJgGsUJvDISAQ7z81WhsBdp/B/doihOtMj7GHk2Dj1W1g4QbLiiCF28jMMf+Qyi5WgJgT2cWu4kkk51TXMHBFxgKv0OGk7ZFT7IES0a1lxoKZNQewucaarSWXqXJEOpPjcBVkcpKT2CwZah+R/AwY2zUxqGta4dw4bXAImtG7k7TO2jSRcgnaxlxV3iHcm/B7Jaa5kjUCpLUtCXLwiiCV/AxWzjXIDQ84UwnN0rvRIC3zf4SwTGswhB9nYTf//McZimCtLGV7j8M1Z9qVoSiGYMDPhCvDl7KsvlRd+aWo2i99U3/puuZLX/QeILaw5I2PSfYID1xmnACNkRJQwkFkWrU3p//Llz++Hb4d5/N0nHeHy9n3BhR2T1qF5I69B02NPerBavOrAi65/1d2gqxiIcIEHoi8nSCG4l4DaY08FPr2yDxgPyD3AhuKLSD+uJOFraIA0i/kAk4KNr78ip4oCQFyAXgIgDUmW36CsIB+HdLr2HHYhPj04pTBKLjQOlQS0ZGyFLlyFWhNCKeEsqRWKCIt+ccZxpOcGbXYSnAOapkNREd1jQtZDGKMaiyLxvQ6a2Gc1EIuqTv8RP68Q4q4lAswsGTADBWLEKr8lbz7Ok6WWGo5ERrZ0Am6VhE5pRkoVj63InDJP5bFz2S47AJ6uQmSl/wb+SifZHvJGsvSvmSPy8MDGkbU3cqCbIUIBjejle8F+hNZY7KJEJHgUOhlfnrZub2ciwlmWYGfCKFMdvcgHwUwA2lo8hYxH425WlfAzucJaQUPdaA0RYW/gEErYMiKAT+T5eqKgb/FeMqWMu6jWQUsAgqbKwCf8JQqAKTAL1LGGY4IAHbt8BKOIQGvxHhVAqyhi4w5TZPyyOAgFIdnSbE6ZFU7sj1dg7+Af8dTwbX4CySxSPcrMS+gAbnS4YiC5wjz7mDWk+Fz2fMww8ig8ZV8AnzfEt+3HPAX+NI4MlyF70FiYsUTkyclTkicKa7C81Viax2ODFchAKl63A1rssJT4bhwNeCeGnMFZourSZzEU9VYBzWeqsb3JcGyxjwjH+vqFr9t8SwdxoMnj8PC1QQx6ETXsTvdII9IYmcKAAHipSFHzIGmguK3Yvsf0EMBhbsW+6jFXLU1XRr8u5ZXHa5wjw7eKFYnbHESyGmx/hKQjuvEgHpEVvyMlFZ88w72j1waFYHBJupAGX/LkBm2pKs4CplaGI9UWsxVhy/dMSzHqutqjIxVp2i4mGcVK8KWJAN5rM4ODmgHm9PhaymCb4u3xBfs6Kp2+AsSgbs4bu3wVVNQQsesOVZxh1Xc9RwP74a93w24B6xAByugqMiwB4pqiZMzCWbA2vYFR2EuH+OR5IyV2GMlKnYedllfY5QGo+Bb9rAlPb7bI/o0eGBYdUh6uwGrbsCsDYC2CzLHwPkqVDILgCMiBUXHll27SEXhir9lJpdpd/xFMgFPNg9T8fh3oAk/Ss8jgfKAoo1/t5qsjYCM/C3mtBB4wcvQQGyS3o0nwIw7UNxdh98q8jdGXk0DZzqD7BM8PWZSkxAqXK2ji1cFrwCqyw4oEQmWFb60JpMT0cIoBA6AciEOTIOHeHqc9mWNp6rxVIqwXjAoRnINK0LT2TEy5qXGvKTJ7rgvae8qtRIT4IG2leQFpgnwMRWeDLiG44lFv/aplSuQ5zEyTvFrvwW5AtBKQFbBckAdsZ5brOcW67nFem4BArbIAyucqcHfNvhbzFCLN2pRkKDAYSY7Wzxfh/FQFqJToYSTSW9PFQvwb1k2wFR7wIC+XuHfEZfFiu2wYjus064wE/bj87h72XtwX6MYLosHdRvEVaVkdB/garcRpxcPX2sqNWaBL3HPVwSYG90KwS3E0GOlqvIm5f9jZQEN0zZu4Nc000n3pz+dx6OHNmaY1nBQ7rdPD7tfyvg8/HIRiLLSmWZKdHzeBzDooobygPgLQCDHAB6f91+ngFJsMy8Y/AdD57Nr4/Np+Z9e/s/M6nIpFzgWeeTfjxPjLvvj88u8Oc/73Xj8oe/XDpwuQpISLD1e3ZvNdPBfwGa5NHK29IQq4vyVG1zslPDQus+1/TDj8zb4bubCatQGsWfvOmqwWKveXGUJlAi+KdGfPpEwVqcSTof7GWM/WMAkbaxkGYJeQpMRFAh8DVAXE05x0t47UTNs/+U5T95jdiYlpRSHJfW4kjOI8DxX99lFcTrtj/4DmOmhErg4DCqyvQINGLfZfxzG3ewvlHKRZPr5RNQy2vFl3r15H7c1ed2IycqyM4lGy6CXwNrU5uM1tW21bgMFW2Jp+2Tte1REucwEepz4RUHCoMrAYpAAeP9k5KMjuYF0h6wr8ThTHGkg6xHWLvuhlfMffgpcDSARAyFZwsPgLRaAOIqBhzdL1chjA1QIMEEBdQAdNOOeoBKBJsBLhFHIxyegQjYlQ0IGpQjIGIqqsE6FcAzXUqEZgyWckipYQugDRw0ZEu2mwx1tWH9a0Q2G+8iKVTqmOTPx+y9fwxots+RnVY3WuPl9ejlNf1ym3cY7kXpVm8NFC4S0JZzIb0vAq0RAD+7UozP6993+23Z6efPPxaXdrnFWAGDJcAHUsJ4hGFQh1zJT+Fylix6X+1KtVK7KrIXE3T8CF6o3aYCYayTs1BQDhdTYhaJMZOyq9yjeQTN0lu+BN6fd6KJdq/bbvVL7wQP4RYFtax0YgmYYwwWM/MG07BXdXZMGuYz3y99+3fqE8qX1lhVB2LUM4+b38/wx7S9nnzY3NGpLNUVgpIyZx1mQNpOhcUw/zx+X+Tgln8nVqv6MmVMBFFfs2z8u82lenHa/dNws4JBMSXq04973wnqzRBK+D/LHcTKVeRKFoFU5A3ue/YCqUnotyyBd/KmYUSRQjtw9UvZSAi6P1suXQ1bXFUgxMLHKFFyF+I3pMUC8HvgJEwGAEEk2BU0hXS7QT3JCXsbDeTp6sIDxPQr5CJxn24968a2xZX/WVPKPLy9hkG4WbYD/oVJQOfv98jJ9nXbn7Xw6Tzt/GpYzTlGZgP5UndiYBxvnJXKdO7MUNMWUSo4Y7cNFDe4Trv19qHEbsE5N9EPOoEa8sAa5z45XHfMkzp/+68KFEwb3ocxgH9dn9Hdr2ZkFkLlK//Hl5Y9vh5fLcQnLx83v36bn037z+3Q+HPfn/WbvzcK1a7LyHQaipSvhiJcXbyWVda8H7F3KxmjmbG4FHKfN/ut0DHeEU1AeTIBjQcXjJw6iY7eIDVpiHn30bUui7hln7eXFt/1mfRw5YyuksFQMoxPe9GMyKW31UROP+zGfI8ylMYGlNSX948s+QEuWeMD2j2x/5uXrGHj0C3D7KVtwHSmIowdrnyGsg7uCnDJTygPOtwGgbwmAv7Srvu8P47tVZrVP7EQh/EREnHSrAC1JVGk/S2jES9Pgpjy+1KDT8Tyf/PnuGwvJA8MS2Q4kO2IemyKGDEipD0ikR+nf7AMG7ndpr/tKPj8hU2ZHkUFscitwPu19SLhcVHXzDiapOMlBXwO/xpkl0TALMZOXRBaE9IjjkckRDmy0GmvJNYMHSlQHYA5WLKiLBHOKYGYHIDMEcR3IRYooliBsaa04sYikHtUkDYFgkNo5SBSm6TSkppAOMkTHhes7rEn6ukgtKqQnpQGXqOFXSX2F+QDpQfq8DJejr2aWSuYifZkDwd/G2ZerGMz9HK0W1yYmPM1VIsvI3kvLo5w8KKI1VVgwCY1gLahVQkUtOK0MulIEUVLcBqzCARiaI2Uf+SPSAqIkdfrFfOCork3QeE0x8PgWADalztktaxVrsMOKAmWgBBJY42BNgAfmX1eZcdKP6vsMnY2p5AZ6n0bv2GlaE1yUr17LMoUbNZCeWa3b96wrLVRFM958sMPI7Tz6L16YiUlPUZNJ5RVVY+N2/t1fW4MJSipi9U/bP/XOGdGDcRvEPM5OVK0LG7deeLM0aLXOVamHgDWQbQvJ1KRmUYJDzkMJeToHZkmak/lAZjTBM1SCowm+n4siUB47Kl2geE8UvUxwkhRzKKW9FHJvjC/xZdq9HPbz7nz6ctkdp3HzHmWKB7XE1Tmvzp8Hwdx2u9+MYdzSmBgwCSuFy+yR7f5bFHB0tkRjLhpfxgoez/b24JiwZAV1KRDGSol/pYS+IkKb+Xy+99s6C6WEjya+SnrE/c6budYsNeSRLI5Rr8TBcNrSA+4S/g5pdkwRZcLy7X73dppf/GXozLCUkpjc0DzvlIxkZoaP0/ji+fu1yRmImUfwocCqAw4bR6d0qzvEKVG8mqArabeszdp8uGWJqFdTc3H2FYqIyZh4TXS8Pe19XNUWiwlrt8hqV5abcImLPqVmfiNw1AxnRHs1nW/Y1z5+RTIus4vx2/gjUJ4yNwtL1UjA/+fqVqu4Q5F/qcrcx2d7nQn+P57nt8v+4vs0lZ3izSWhPkIeRbm0tfiEOd4FyI+1pFCcdp8k7hlMNHx7XJCcer9AWSiRvbj2EyWfchGXc7L6sglsAPXmUbfI4kSg1/JvJOBRJYQCq8S2RJZAojwwMiq9xNu9nGDUZ9CFejl2hlaOJzsDV6kiNRQUuIY/A1aAgoISyEZJXXmYA1WghaIKVVCVOodYFKWKnYAfKDQ2VWoEm0vrmygc0kU9rJXOl/fQLqTKe2DgUraCJTWqfCbvkLLchaUtWSdVlaKQgxg7riqmZtEHVchS5w6o2MlijlS5BgsyeD5RnV6h2zjhmXxVpQo8AligwMPARIOvVgNMS4ySLg8ATqMKAOCek7pPXYky4bKnODyKmA7mDonzKao4Ccx4N5LBNfHbDst3flCez79iAu/GBcJ/9/8KWgMjAXONRDM4hdhiUYLbFiXIaQigwF+2tpIOuP/jSmZznSxA5oxYow8gPxGzn5IFEF8yUdcv/zhR4C+HDsv5UcUvA8oq+GyFPuIe1OOH4iypMnz5NzjyMkX3dkE9WNKqoF5q5KV8E5sAq7yTCef5KKsurqOHU8mCerlFtjGLFMuzIh7UJfFQ2KElVRqPsr4C1Js/VS6vyuDXlrzzVKdiU6JsPVmEjr/Frk11himbxEmvysJllLKjH8AybsRFif4yiqeSLehOll3Tc0gVYGPkP1WKvbIAG9tyafCOK5Zdw0qiwHR9OXXe21lbWE0PCD9LlVPTRKe69yhfCJ4IPAftC8FjYVT/iVLnRIGz8qiIk6Z8q3xpMv4WX0aXHLMwOOWD4Y2S5cWJ+I/0lZSH9qAwOAE8Yp324FEnS3pV7xfgBizkZXks6BaqCgc5K+3xsaQ3UcibLN9FWP+gkJfYG9F9epD8WYLQuroYN1V4S4+USFOq8DYubdEluPRXf77IFm/0oNwW4ym8J1Fui9lIFt4C31NFtpirfHemtJ+cL5RNeNGq7DVV7BpohjKj43d2SpW44gvCfzHKXvGzlWWv6wtWWaYK7z3ZWwq/ZalpsnCUpaE2w2K3P78HnEsTdQH6malFIudUNipr24hs/inxE3gT+XOWfNVKvMRsamp3+uZPRGvm9+C8UOtf5ZzrzGwv9wjgfLM6sGfp5Bp52HHngdhV51XUwqC0LlVRy9pMUAIQcIg/LvuWXQxlH+Fw0WVyRHLwNXEeKoj3p5kbuitffFJQcEGV/xMPpSVRhXq5KT2/B6QrMzmEKDhmhpdFYBqTNzt49QC9uS4QttZMgMJbpYeoMgWqUReK8W2V5vEw+5y3PAigJThR3a7EMzOw8eHgw73O7I2W4VYdDpMPWrQqE7FoCSZIEcCCwYGiT0d5MYUyxl5+WkBendHxeayA58rOq1zf52UaX7bzbgqaWpWKbY77hplzPqEtnHm7S5D4HJwt772mR8JtUN+8FWYeABGWAkLwky4x8aTTc4kjBGF7UTpRmTzD4bCdN2G6u+xMMv+KwUI6fFXYMvOIX4XlkDlQAURQIA0RBlFyWsWqs9E9Pul/BHkfO+WZy/twPJ9M3Zq5QLFdDTMHLo5uE6eCQn1z8gzLEwUVx51tsiMvMjPmYb+dNz/8s7tT2xEsrb6kmwzHA5P4gDBxvZdfml1YKTkc1sTeqCNA/KJPxORszujiGEt5A7lT4rD1Z2Ow1xCPCGbneRbnSuWXu2zGzft0nE6Tl2L05H1LBPF1H1dVGiMf94fjPJ59G9Cb3XY8SZncvBz3X4Ml2Dt70IxMxdEvDzMb+Mn5cl9/gaQwKCcUjUSwrb60XMQAusDc8hEJqRMKl8hAtnUqSxoSJIhKyy3QO0jJvCKtjryp/BsJp2AtVHkbQVRCp0o3FMClUqPG1QMIk2aYvDIYdGpI0u3NBzufABr/BLwIKKcBPEbIUUGEBAZxFj9KgyaSn0n1Qrj0KtGZTXmSdLM65YnxVqc8WaKXh8wIYjH4iMk0CmqiXgjksXUCMxBcCaAh0jyY3kw4mwryieGdfNpSa5kBNMlqiilYhIlJpd5F8AJwh9Jyt4/Z4zT6rqNZ5lETmLabw4zHt9sPvPI3s5JML9s1zNn0Lb0mUWYrgFWlpscPCQL8Q0AzMmFPykQoYIz6dhx96mSli0vJpCkRPTwacn/ZhconZiAHyztkuOHH4+i5Fl1tHX2UisdRhDSvmFjVOivK14nRGlQ3X6bfcIDS9gLIR05UJ2qgpZnskk0LSXtHO5bYrwruJLQJ61Az+62ASu5DOCu5PXccf2z228tH0OGUHjOT4yrn9JOvsmINHQOmXdtZsAMO4Mx31S3RYnqq/jqpF1FJneiVFNcw/51UI7QH8/91nr798jJ/fPkYv3/ZTj4FbrAp8uti8uNx/hqoYHS2N5oLc71BbJAYuYT7f8VucvJlTk3fM0XDyBDzIkKF/LkSMJILlLpFICbpAWiJJe5LQmCrgCKMKjRQzmQiW75SRF1lt+kQJhaxQlOTGeA8ty3O4mqUkDlPOk1Q60jICScxWZXvQ/ZOsb7wW8X6YklEVi2JDlLKGerp0FBMlbEmkW7mW+ieBHmU9EbYTLtQUMGsPgDdMTvgHHQ8LOzGfa7wXyU9YkChX6qPzD2fUZM8+X25bfE29LhgiQD0/rJZi9Pvfqyc6Z+bEGNMjRcUC5vlzEqkEn5xrlz+dJqOgTfZ2t5kbufIyjRuM78F6qidMxEsmRNm2WAXssmG0+nyERQxFqbTllG+O/3YbfxH1c5kQZp9mVCaUACW5JbQSA6hI+2cqpRXdoSc+PxTvh/3u4Du7gqzJRshaOKThJZzCORyr6Uh1XjeH33PXTlVHLRMKNwmx/WWXq0aUj1VrLlnl8mfjmZSid4ULCTYjyAT6zqyA/sBR1HOaMoOhpV+q3q0Jwj2Ee3wU33c4/Jj+Axol6MpesyCKVIa8JnsAd6A5EaqF49jhUOkaDpxifOfbDIPgs3qdvMsrSZdhkd5Srs+ReVOkGSoTv8A9eDPQFbBM/9kS3tPZ10RP1T5iG28z7v9N7/4vtT7FJ+ZrUNU1huhCBQJOnyCKpHGTD/B/mPe+EbOTEShpoWwIMXXXUbb9XqTcRskAAozZc3lf0/UpUc9j5t3v9yqNDFvNB9Day9yijPf5zx9+PLMtdLye+ooBg7v8A4xBBYSsrxxUzbm8sCcAGJdRQ9deg+dCjo8zi9V21DxpKDkyGTogjhuK0ryKzYTlncbeMiZiQwrZ01dxIxmV06L64EYwe0hvCO96bQ4PV0hsIgB1qzeUZezvyidwiVzmVvXJ5J+mk/zaAWnA09iPZnPczm/f3kd522Y4e88ObFEz+7HczHtznNc092ZKd8h4/yr4QLZbrOaNLu9zF2lmPG5fDafJ0jmL63hlHQlAuQC/YUYvFKs9N6wNniBqLiDPkzjgu+unlsBJynXAKeHatnT0EtOsGvhGmjFGjnuUvzPOy/x8cylxE3NgPbB99gf5/MYau+52hRLbVVvPvhIOO3bJrtnlpv5Z1pthl45TtJtqH/Ey6h2msBDvhR6C5Zlas3QThcZdsfl/J7UXS1bV3t3jT98iSYCDw2AX/Vtdhpn1TdbGoK3kizxTjAB0yk4QLHkhxM5Av5UOztGu5z3X163l5Nn2MtGs6tcXxbxh8iK12HUL88/AoO2OJLe2DFJYe3Y8+48Hb/6apllU3nHXpnieK4b/hjoTSwwkzd0inP2YOjNcXqZA5191VSeUb+E+KvWYfQBXallk5qCgQe22bD6nLsNH33IhQmg7yF1YxXjHUYlcN5/YnddbyvfONBPLlt9b75VqGi1/kbh13alEjh8alQhBI6DIl661i0+xrMfi5Sd2SZEGkplxwpDjs5UkoESnirFR5oOwXPiJPUqjm387Os4b0P+4KC1VdF5sCzbBPSF5FWsnIjKRZW7YsYq2TcPMWwu1/R1P7+EzThMxm12S38bg91cmtm6RgEB9qMtA167A7yedkHsapHflFZ5hky7DLz0IdlOET3T62KFfswIqyiGPaxVrl1u5k9wY8plgYKFolbFHRoycjXLTUId0Ko1w+RQCHa5anIfwt9flbm/VoHx330muRvs5i+rspnPv72fzx5pvNSi6es9y+ffRG75b78++5i+reqW2RIc78vX6Xia97toXFPDKD/uHy/PXzbbedqdv2z2u9doWJMaoTq39o35iZ5/Ox/H3emwD1Ib+pj7iWkNmtbUJn4DahNk0uPCeMWr0118g9Sl9RxBCsVMWENFtSFPj0Wa2TROSrktk9pZnuotZstUJkWegaEcEg2EoyihhBzyn6uqypEKe4ouUTnKzsF4WVhmfpITst0HtszW0lwjar0MuX999bOWptpuy+T//XEHRQRkdpt5p+zHPSzK5ReftVuWpbmTVKmGzbvQA8cc9KWZj1cSso609bzwQvxyt6VM0EwR227F83gKxNqcCd1I/Dcw/EuxPGMep4It6ty3D6Ssze8uDCJoKCHtQvJvA+cr5SVG+PBfVvLDn8dTgM93nbX/ifpFj5Ae+uzj57pB4xOTUU2dgBiUJguwUps3TuXcSFSLZbGYF/kr5A7J0ZMCmEiyhCoksu2pTg3ujhgZEL+VKHVCRoOIEAUmtDx1ls+N8n8tPrVSTOJPmN5UvpAsRC2VnRCOYO/2BLii5K6ZL0yUzauIlj4ki9pQFK5YwxSqTpRQZzC46wr2S5MyLZs4b3aPv+uIvy6BY+ibVCZi7UoujoxZvg4ccSc70x9l27ra7lZzHTbAjkwBbwoqqUaZ930kdqzukXqPAmEKrqhMNeJW3R8dFK01wfH1HVJ93nS/xqeyJq4s2xla8B2XOoDRlc1ubnef/zElsBtlDWHv19Evnv1D/UEpDr4HLV2ieYgQGBM6gviKkiKIkx3wDVckFUFq0IQFqgbBEDxgMPaJ5cLylYQSDk1RugcKfpssKElUhlPxRRWKkMKL45K1z0qXBb+FSVVqLCgKQc59aTuDq4j+6yHSqE1nR2KVZ2EBCGlmsT6uU8UZvCLZGARwhhpAAGsXm1mV21Ut2BPKEkklOdtnn8Zj2J3KLLBUacsw//bAlZk248V3LG2Qg65LzC2OhQ1QvAb1zw4bEQTikDfsdS6VnymVqgRnVxWApTSiSP6h4pPSqOTO4C7AqlVNBuMDWamb2ESI52mzD/h/bWEdMyBEC5PXHjGsKn7U0vDRKvDZ8HYrcwqV1eGR6ErZgEr/HQZMi+q29GRsf2J63fsBntnoiCpq8DBxvuHzwjqx9Fkex3SxVYfUiPoeqwLi2I+PEBDtYhIdCfOZQyUiyFG39j6VVOqTkSHxnuDby/wA3ICIjEqIJ+XxYlpMqjEIjZCi4HeBs3ddJ2Tw5WTlqi4REySYfqptbR2gV+upmmkJVnL+KMaakutCJSH7l6cJ+vwt4J2UGCsD4SSXD2aJx1tKEANHmZLoCRtTBEKpMX1/VcuW5+lt3u0i0r7ZBVG7GnQm4C7AIZDj2LynbxFrM58hyyA90Pu49TCtweT0VaxyKuwoY3ofv84+P3lRK3hsrVVTYLug4Xl6n3cBg/0hq5+wr6pswaelcc406n2egg9sn2ml46IJ7SNNnuToWJwDvo+ipfN4zDIrEo+7naewOMuZfd5zzWyfp6VxQkBTsylU9FIzZ++1FYOftLcbDgIgpk6LtlcZR2TrM2Ybk1GCM7JJ0K9pnhVGp4ALllRTHWdFC4DnaTe9zkHHo7L7VG5kivpalGYHUXMxGiN7yZvGhEycBPy0EhXsXNZenL8FvlhvZvKppjzE7gm4QPSOcGAqTdMycUxSTICgMXtIF/H3Z+TFcnelnpfBtKcf+12QKTfTEnrBZeCi2d+dfWVN35BQMWwzKdH5bfaL3JdZMeMxAKYAvKnCoHQbEConG1fgQyRbWCAcT4qZgpxI4UjVrsLhigoECHepLKBqm+2te52YoN6nNxnqsjNIze8p6ZcJUa53Oe/P3/anG9Fg+XXM/+p0IYD6ng9Qp3m7DSmEgymLQHOYNWnzbvT7W/aq8utpILcVqb6a4pNVDJc9QeGvUhV1CGpRF9PgZFDuRGpTswZGZYIIxVCzI6IJ6o1us0JuM5Aoe1ctp5/o2zcAQx59rGXY849D0DJNky97QCxVtzJTF3hSTveIL12CjRfIASHGXNMtt5dvNGCalQZ4QhiHAdKqPrvLiyPZgFSJKJla7/8fAYxr5ilX6Gos423CdjXOqwLBRNHzx8vJK636bofxx3Y/ht2MB32nNvgA3uSthKbnQHSvavQdJLhuGR+iCqqxl8+jOn6Ox2WxssRd3TfxMr7Il92QWiwCAL1OHAmkl9EdXHW7ScEHSAGqvo1wixz5y0kNfLw8cGiUNCpsr6t4hcMVCSF1pMLQ8SBVhg7HYgE/BtCDPj5ZPsOiNnYgSSXleKX6VGJ/9jxwE2gx/Kx2sJ3U+fwxetQt04su8WWlbpOydi42QU0VnNOPzr/lQcI6YJNmSKguZ6MCP6OpFSmDjKUhoU33hKJOsiIKymtTzIBIdgYo2I4fAQWiLE3MNNOx+nm797OlrjWxXGThJRdsDhjCL60zl0BhixI8718CkqKikqceJklbVA0MlWqtPbP7/e+/T9Mhol6a4eo6utJ+7xP5C228HdPx7Upi/DLg5LdR6xSi8EQuU90mjD+sKm+tzFlX0nQhVgAi0pMUMrTRY1tPmnLDau2GgY/DDN3PPcbaOfMlTGsL1sd5I9bdGPJ8Oh99g+ecqS2JrHtj11hhzD++HZ4X4v50PE2nU1xi1HkrKFHfnyldet4fj2FH1NJESUOpyRJl+XI4MKeVklCsVHtsXmVm4PpwHmzZ1DbYIagDwHnVUTNjRK93+eMy+VFSqRCAp4HvsnZfHqPKGvPJZfSwkZYDvSPupJO56aL07EO9uk6GPluzMiLZhwWxpm50zGhQZbIoehQSHimt+aJHVeqIHAWzFWiKwBQ89fOpYphpivAcUnQbm8YMN0zV0t5fGZ5h0udU3YwALhNEJYjfwupRuz2VGLE1dK+vMx4DWWFXVdbhS4KQgrYyMPZtfG+zDKbJqChQ7zJb8BKqk5em/G2kd8s1E+dSi/AryZxnxWiFgYgAk59UtdLCwZA0dYoiEOcPFVmgi1ItuoEi6FAPFEb5osTK2GCkzdj/SyjhbmNm0LBx0USF6mquBFeSTT6TsmGpsmS8TS6b4ps4Z2LrSaOifIpUpPag0xT9EcKlZCUxvZuN/B70nCK3KQGUKW4TfqtYTnFM+agPFf6WmuyKF0XUnbBcFKM+7E1FnYRYUU6zq2JzXxGaLOyQ4zjuQi5lb6qgrYGOjtPoBUWdHb+sKY96Ps7Tq1/QWDq7YuzPlXeAeGSzjdPPeHU0vWc0HlBcv9t/0DIe8G+oKcU+JlBEYHNLkFYjtQw0rkyIQsXsFXAjxagnxDagBQX6iaByVQiesT8kfDNZ7g86PZKY0sduzvpujciaKVI7UzmA5PBpFWaLQ+mf1YdpHW1ddXVgfziKv7ADHAkiScmoBLkEmTIl4iTWQvcow5HyoAcYFSFx3xa6OKoDl62rd98uIWBtllGyHytao8pHvFNdMncJ/Dk7mRzvC1n8APHU6sV8sLNfavbVXGZS05eXN79tQ2WXQ8F7IYsWeR3sGbAgS5xlLM0AjYgOVdqhIAVJfX3b8F9eXwPOa9FoncOuhlcALb4uFXnHbRF6uRigDvYJoX3VWZM+C/adEt+nb4NRVns5GE911kx5PilmNn0gPKnyhhJFYJ/wkFi0iXs88JqIHqVY4vSk+HVTqUnSw37ezyKTgeVvKd8LIyfaGKQ9M/hPykdjRoFEtp/320jwwT1yvlwJ1EX5bemmBEzjtriKORy6ZUEi9/GgqyTzJqAYKDIfFIMHG9u7WoP/CLEcm7b0WSnY240Coa3SdBAb9YkSFKjBdpTv9xk/oryoVp5lByrVY+oBVOSNHBfkFFotli5IW69Eoq7Dh5B8WdszhHnhFQsr1jSDut3ysN9vlxIjn3Wl2AMov5IqKkP9QcCA9K3m7UsQ05pnp8udXvPWD+kX4SlzIAh/tRk27WXengM06aHMMiWKs1JmysXICBg/X3Yv24BoYUoh9DQnj0YMPLfOxGh/YsxgSLNN1sohA+kVU8JY6ehi4l3ki2svIkn2SlG8EsSuuG1Ounsy83MkfysCGBJHGYqAHzEPluHFcqOLgJOGJTJygRsj+YwaZfmJOA6AMCtxI3Gu4UBiVwJA4JEGcipMlZiW0SkEiuVXPX4iRRYsjBbCcosL+Tfy5+x3IH8Os9732Kku2LJIz0BKD+ruA0BMNkwpyKNQoCgopxRIhseJc/7fEpPqUmpyNVg2TUYq8kWIt8EO8tpl4bdVbNq0x85KxpR3TgIm/h0ZJDX3KX3olK+dapxFXzbh6aZ8WeV7pvzMhCeZQvEwQz3A4p4EcXYhxCisGBzge+pCdXkP9J93AyFxeHkpODktbB1DzGn5abLGQWIiQ4qy0qSJsVd6R6+J9h3kV9Urfa1vnPKD404XZNdhf5R1Q/+W2SSIXVO/IuNN/PAbJqrswNPAlBcetyadqEoExGJcZXkge8f2g6IDQUEIwSyk8GJgI2SVauvCZ3EOYbpjhoZMNWYosDlV57w6ETAr2hY3BBnOCS8ctSJavRxpqoGHI4MTBDao1yIxXKcCAVQx40NSF+7R2u3Llk+bomN4zaBQ4Y544oGPHjr9mv/YcO4za4P84gKLQqp5ZetVsnYpyShWFwgLDrr0emFqFlAY1hBXiSp4BxSlOM4V1wvWENZa08bmP1W4oNYLc9hqlaAoSnX748qBoUCMqQLwLjYj6dXExDI5dXaWYPnIh6tk5cWzDl2vgiKSi+6UooeLZ+N1BCxLs9A8V3izGYNYvbHDqEwx8rULbSCYZEp9ZASTruN8idrZOt00+WnAAdGs1Nu8DhuwFszXjFgLMQshfY+XUNJjIYTakwDUeDDjmc243Vy2YRfepvmMWp6MFVCiysauG8+P5nHzOlMZkMJGYtQpYwSknS4xlXpwRacyDepGpf+POqXmu6LCpdPKPwTacGrYjX9Sijq1WW2pi4xkXYcBV4lfRUe/kq5ByCNWXs6GWAIKoYoqYVAKAHCxU8EAvl/SA0CFta6Ipo0FRTqliERnLEMoltn1Wxs0ttTjCjhpGTPkBj9QsUHReKK3RdTtQKnDAFOm0i4Pt0i1xHxYL+NS22/PzHJYSgwVBKVwIJExuTwINIqCIWos1MG0jObjMEWGU5kONRDFxkYUb6/qt3w3UScE0dgSFAOTxWjdJGRfN2a3DonMrJGCXg3m02aWS6YrxManLzem/FWcJ1Q4DEpPRRBDfH8yCSh/EeMwMUsA5AD4jllNCqblU+nJf4dynIInVLtH/JZJrbzkkoICEyBCAiZIpYCY5ncJnFeF3Kp/Uwoe5H7KqUSoVL0tZLQZd5vJO+CrWuv/U5zq/nCYxQF+bIkDo4JDP1B3CdIQSaUaeXAYKUchI2rWlHh72po7vGe/1ctxnHfJXhDOqUaQvLUMHsqjAqCpTTLC7Y6x19XY+nqCw3J8AoGP7xRqfOqPVnB3KqUQiY1SMStpo5Tpwd4kNiir/H7Bbk+yYPku5HwqbRl844pnDCnA4dvTH8vOw/OPS8DNqnSbGvVGK7Xz7iOHGbXG5N5SL32wNaZvox7DzmheB0OYKmrzJzpG2qP7npJJbaaGBIxoZZeobMbdbu9Faa05MqC/nNJfpncRYK5VWkwhd54do1IstJUdildj8IRA/szxlFcEhEurjqd18kglNvAjcSIFriTECOixplhjn+0evBl3+93SySKQgzAl9EI5iPSgXqFRBpgA733AUsTCC9cbnQXt4CDbQzNJoQQlFIq5VeBn4hso/UMe5LwCSm3XWm3GQyAZawtZr5GM3YyH8XnezuewYqIdFEKD5EV5hx5/BpC638BPZJqCKsASwKoHL7VjEEPonQcRdw4CFjpi3Bstv4HMN8NyrvnWrmPkK/163h/22/1boFJucjJESTs/6peP+fQRyluXRek1G5bTtrwXva84Og5hD5cFmrTOOpjCgs4ehIUauyXwcptN8LUbM20NeNdVCthh1o6MLOakcjN4CJs0mupA6zr5Ip2NvIwsz8818P1nN+f9N3XJZQoRpuyf0xuXSUeVIWJUhEqYn+tqayyOoD2LiQitk5bZXLsK+MJvZid7ojU5UAmuAau0M8nJTdzWwPVm/ZKqs8/U1N/G9PEZs2MH1eTERCsKRVRwngq4S6JuGRbQ8lB+EfzDwhaeEEhm5V876OtQmi05GxmZ6f50i0oSsZHWLjKveAo0lMrGxJezp21wbDizCIjpYSH4iN9ayxGpmnMBVCkpFYQwr2UndpgAtumi19PaCnzXBw9DMVsOH6UpUvlgjnk5bMbD23j4mHfTaTPeQvdv8+5l/y1sHNnpxpH3p15xrJ6nt72/Pl2rWrU99TB3VRGH5OkxL2/vfouiytbFz2hpRrrSTovSy2Gkogr5ZOBpAOcnc+O+WmT9VIIU1xLi12h0IcngGkr94GpJQNRJkNqDql4igKrAsVAafshWINR0oEE7dPl2NfZnjUCrVqLE+At2/gD9CPipw5M70EkcWB6uYZNz0ATRGMW1CA5b4urgTrSkGlE7ki1pgehUqZbciBVgaAVXTC6Dad7+58e8+8+P8XtCrc3ZuqG2xt8yZrhfnaly8/8Pb4u6zmylBIFnnAE/65FRr9hrvkRtYuTf/g/13P41/trkJ6Tb4WFrlBJLClOrhG9Yo0d2Y7vGz5vCHNBgis2u9Byn43l+vTYCDxgfdlnFGgV5NW7AATFduLXDJZpc260Dc/7J+7h789+6zjg6ny0mud0mqCewHzijNXwbKVQtfjTSAxbIMmZgOysTdSZCX/b2t3ofg0BAEe+fBhxEBTZrTW3YKvZ09L9sM2n29/EYk+gGjctTRLpdS+55n3yqxUIoMJcIS+czK3kZMQVMlHWt9YMyyMO6pw7QB1PdGigqsycuBhhVOUJPF23t+x72gVRu6ew2l/8yHrrwovKPmW4BvSjxeR75Sh4dhg1GG8zmFTkG2zKaz+lsLfg6zsgn89JJwrtiOCWKUJi/HmJIrLJZrpv3/d6PAMqu+Nw0hOO0zsTdf1IafrMd5w8f6zQlClnVk6uauY6YynmrsIy56Xv++fHCWkb1xUdtw5QYPTXgR4hYliYZsFHumu2Wb8eTLwJi+uSQpBDVAnO88Pxr/0WyHaYdMZ9sfg0gONc0ltGlrmdRZN53GncXX8muM8UGeqbS+swnmfzDuTMVtoCosVH2v7BCiE0d7Bbc14cPPanG9FP/rd9/Go9BXbKZWPxndDi5Nab2VgatCYCyNnYXnpAbB9kToS5K6CgLEwHEsUYXqFtyaqBpB0rfAC+wmk2gAoov6ARnLM+i1b5whY+JBKdzbKkHEglFWcqGDiCwD+p1ExRWzKwYT1V9R1j4xO4+7NXK9sxJpTD8DEVOqnQIVQcqFavaEqDmhNpigieUKEIsUYVYtniWTPuF26oKcrq2WjD0hGLyHxdOtIKgtwIKhcBLSocwkeJOei8UtoEby5YjJSqqc0ns6zvPIbVJ93YuUFMO8Z+yXEuSuQ7/MX6/d6f341aP99auLOy5DRkI3Zi5FkBRrD9V08waQkA3CvbB5KqFTCSdslIZbyr01LxQEBsPaEwnxkk4o0BkIc7hQFlSGn8g2iiVQ6Bb1PPr8Rc9Ugc9C6MJ5LO3rpPjWdtQIRrRhorpFI8Q2GICJYwbiAITlNdNfCwKjyrbRfioStmuLKs0ReUhbpdaBqSMpJC5VJPNRMcxYm+5WGFZOJt90LZHdUF6EqRcUMVKHrOWeerR2g+cCtfgs7fUh6FucRt/bPPpAouhvXkxaI1Mcc9ya0p8spoMqGqVsCrYJji55W3YLZO8WAbxOOqoBPzzC2IIAztvS6Qn5nV7Ob2nObCl5sA2CaC3TDB37Rvtr3ogPtzjdRLB2YEOSyuGnXeve48xonNxDhASaiOBjKDBhqsgsdT0a436PgxtzOBBFgT7p0pZTFMhBQAaM1aE7m1K05gqeqIWVKLKPVXHnqpUp9IccUgYlVR99aN1ZdCqO49WDasbmlbPegV5gFVfJwBJB61K3chU9NDv6lmgBANaJW6nzg5wU+HNKvuuPhTtbMBYsR79cgyaaJuMAnW63k/I9JiX0zlgezhVg0btjVgVOszF4bz8jMeoNfPQTrZAqa1yAG2lvPvLBPozrjKltdc08bsP6ruVi4eneYygm9QrjV54HmoWHlX6hwQJD2wUNHb16vThUdHcwyfT9e32++5fpo1nNJ2t3C2JS2oGYsEPGYBq/xLRUkyCUS7tsw/EnVrzUXPNMDb77XY8hFahLEsbj8rUdu23QWhQ2zTFHNge5T86XaVRQiOxRsWaV00L5R1xcBOUelTc4vARtCCSWCTFmSR7cc6gDSB2Enwt9mURg8i+Qi1XLzECIAgQjaHyBNe2ouBDZs8VxBcQX7BemK0SU02JABul2xPhb9moCPCSwiZwsLLWxeHIdnDi2FVb18XyaE9R+olr8OAHHyQldbla4JLS+CnxSfytEouk04DfKkeCYoxxliklvKjlFvNCWKTAszSB0Ums+qEUGyi6R6kYxEc4tQ3RGKqIMEWMn1HKlUG0agiFGjo8i9ITYS9Glj8ItalswfRrcbqotlKqBSf+QjWYwl8kW03xb3Ee4OlbzEvLPoCYXQZYHaLAzu55ejNioR5cbxlptNaUjpX2mEFeuihNQrZ8A2qCtgDfMs2WbreJutx1rYaTsBfqRGywlrZxvdFteE/1Q1t7yA40RWzt7VGvf+/NU6ddO6q4upU50OuoPqioI/kS9CLoklMiQJ1YAHZSJDQ0B2IsJGcO4Fp1aDSqHXxKNyxv/lIKYkyoJsyk0vKlweQVpSXW6vHSsMJktylzmpCgSGrl0uxSmyxlbBPqY0kd25R6bWyKtdrsWo1ZmlMWJ8diD9mt8/E874JMXWFSWlPJkKiGkIgeCgXD+kCVy1CoNRulqGKfjAv8EeS9CyvJJPGQNUwgYW7SLvFq8oTGgB9BOqod7LzimlKw/ceH35Cy7DIt5TPh73UgnzNRm1lo6ktSHwZ+kstN6Md8PodrqjApN0CJEdpSKZSSARVdNCYgmNDJRAH3x7mqQoWd5DVsgdONjeIf2fKPj8supgvW3aeEfjBalBnpzIKYbGj3cRg3flq0MCl9qzpM3ocMJtFk3bBhptJ5pxZ6T2sImi2rXYv8U0SC1K21xUhRjvjDKfqvotyWGTbC8gznOa6fdM70zWrKrNPmZUhY91uE+sImu6fnwcXCBsA/TZOzWId5G25Y87PiYKlbBKlSsICzXXUMc3EQUWcQqNvDBArdJjWKZQUt11idcaelObpvTgfz6Mg0vb8Ndg78Q1NwAhTUWnw8TCAbzIA0zwQXMjctuzpgThXSl+hcUmYEf+4P73312gwC2NVFznCoJcSYbQL8gEowxTbgIVHmiLoLKbA3HaanvFP+NqrL14quGZGP++z4pDJTXTyiAqeeLHOfsF7DVLNbURu2rhAs9zD+8VMVKl5zsvBadkABSD7UCUQfU4MvD7E0NVmsgq0yZcT7j8NxOp3CUmLzuIXF5VnDgLLogxj2oad8u3mQxDPlqxqyA3Kh+G3UsH2qU50L+RpD10UPXw8JgFu1sKL6HEwG8xEUSiCOkXWV5WEjiHtJHGs4HzYftvihLyVjb6evPjvUOR3J45X6po6evlrZs2Gz323GuBVEWdReLf9AtH9teL+MO+3GwLD2didKOLtNzhztNtPRhw1cayqeof1PWWaqlPe7zeV4nHbnoPmb2Uuaku/Ce0u01Y1a6F6xxdybvcyLyQkqeWyN1YLqJxmuzX73Or9djqGwQunsEiH2g4ia/WVvERrMJbh9FD8jktRAS0JafaWIeTp2rok+5ub/+ha+E1OZ2iWUFqaTmStwlOH9LFNnZvNxNIA3GKrrQSEGB2wP2iQbHiqpq4TwXUrXJ8X6UloxEFusMhIby9seP/yj3ORkQySpRB6lrDPiibfB4+XWmixocGtFcCUzbvCFzJIMKI213PsU3nn09NPLx/j99OPjeb+dQ3q4svEtXJgBHZAeGt5l/MiRstUl18ku3IYNDK9pQ1ZP+HbehEUwZvvqfOJ1t5s2QTCjO4QLL4ftHhGFkr3DbdMWdFppZciCIO0JmZIyPhnZKQ84IaWIgRNGXOm4uUjM/BtSXS1VCrOMXo5NjfNEZrxcqg+EQQFE3QIcBd3LgZVWQKzgqLD8Nmr45HeDRIIuJ4N8WwX+Fm6ddsgQmBcYsOLtUkkERQCVWKNGxCdfjOiv5LQT4qWgYVEzIP44DcNc6ncoxemEcSaInj2AlqkJmQmtGeiKMc4NFuBzlWVj4Lej4oJMOHlZVpzJBWq6IR0J4o7ABXIE1nKEKOoQPH/5N6jwZ2G/bMG4nS1rG3DcRgRdfFlZ4QrgRxm/JJ7ion3ZXSyNcAAHCrmIC/ulfEKOhlbenaX+slBhhrW1SNgNqtKwyAIoQsFMGSW82Q0XdoMkMW1QSVSG95GQdVZ69yTFUgkRp+C/shtRXHXUor+NtpjA81K2k1RyHhZY4+iYrYnmytomJBhAvmC+EnLnlDszpBowMhIXA+VrlXwD7Di7/4YEPY9BpwPnlOADZR64heHiqRpB/DZFEofuEvl6WqohoOJ7R7HuusOThF4OzhTcg0U00N2Qw+BqbkCMQBlJm0NuxTpu59N52i09EZ/331Pl3c71OosuM9cocIbKFitrS3D3ID1hdl1QYWzodxjKUYxseRW4CplH++Pb4d4yOS5YKwuv+uW+gta+NEee3hYQJRi59kZeScEORz5Nu5egA3uhAAjYxp8YebeASPFUdFrgUmWAf2bYxDx0mm9attXPzvAybGIS+sKjs1Q/O73LsJeXQ3JkXWTf1j81vcG7WzmjAU5CRDTGud9E0bWugcrGTsuTpJnqxaCZ6nb640Faw8NWQom7ny533+9O0+Zynr/6aEhrqgci56AkUGF6CxAwdKcbmN4sMne6WlA/eTs4GxPDGdDk0lW70z6Awyqzj28+tbw7nY+XyK3uTZ2cdSXtMuw+YNOrbXAbReIQMeDiNgoyLBW2kpZEfEgdMblAYRD4YfDIWdEhJwDL5MTqw8OAkwDPgGWCckE8VJYDQCVckGeJU10ukMolO+Z+Ia5bVSJUk+JB+TdwEyC/VqOxjfgIcCRr1o9JOAGPkY1MIUvnoCToShQu451cyQZr8Akho+ZKUF8rxPEV9A0r5AFBalu6/MoVvD7Epq7C3SqWROK+EMVzaKTqqo6BKf4dmGEVO8pQExf0pZot2aisiQwjPDJXs4gXHm2NGVIcP3j/yBI7fARXgxNX4yuQg4hCE0eqAVQxXYM13yCPTIcHVFrX1owDwAmpGa/iL1g9yNIyzFpLojK+YIfYpWOEgbC/AxSgoG5kwftENeJDG3UJ2kO3pgVF6ChhgTnkRyjaYgMJOSLWdSQ/927LbcnqRbsdqlAwlozaQWVu7HdrMJFHx86D2ElYbDjIxFRgn8AcuRKGskJsx75MqmdQn8PUr08ctq+2lT/IT8+e9JcILG6cdXyta0Gy353H2e9aaebSaM1y5fi3EQNcz27LBAyhZv8KZmkyrTxu94laMzkzV5blsV0HC9y90szRJ7pgsjIj0aFS0WPzzk7kQDW1tWhQDJDuTa7YaxndOzcA52WLoJwW0u0RpyWZHi1FLYjEpxvQ0eFhEHCevgfGrzMb00OQo8qx7hY1sEvAdKzsorOa5jy7Vo5jmL9ozV6OdZEzzuejX/9c2+uX8l6AS8W1lI2JNua9fOphoKdCsYWIdKe5RqqlDpElsLtReNJkp+jrdAzjObMgLs9X2/8+ByICpmKaHRjWAPZZa5YJApd7BuWkZjF3jlZus8nZrTv/IMeXeRdKcC7umIUPwbHq2dw7l4o7BJJXZWFmBlioJyVO5pCBITVVyFYyeA8eEFfZ+VEsbAo0oV4JF3K44G0STZJRRykKOVG3ZFcO9BPg+dMnTrXBJG0m2faYV/IRkw2Qc2zkPAf58CMMfiv7rJc350PDj8qyfoJS9caUXc8b2eMxyg4uZSSm6SZzMaeHkZUs2R+Pl0OgctnajVnjdtbSVjozepiHs+3Kv1X+bH/y3jsDsTDr5Og7A4fPcRFPAQl/cObKWIkNXfxC8EwxDeo15KJn+TGlh5i7QjzOGg7khtLdr8jMyHTlCesKVSHL030OW5SfoQm0G5pEsbcjLCfJUlCYWUfNWmjScGFUHKEDrisGxi1fXcxVz8QS21RhOrBiywYIUMtDI7f1Loto62E8+tNjcq7Ie6tyROXrqCd/SHNlt/CmZI3wOMH0DNjrj24cFGiZNUvIcWn1/Yx9/TqFdSSFaRbrSMmP2muifWfeJdCptT7FWp3aTMh4HE9+eyqbHqbTk5kA/DgFBU7ObrEN57BsuWpBCzfG/nVFsqk3a6DWQcvhjdLZnN6MkX7iLs+X19colaNLkdtEqzZ7OH99Vv1DZmYinUl5E0YpKZYT89BNhlJzfaw/LtPxxylBXa8rLcQCqLEfYgAvM3o+V6q1wd1aHfBg4GRCc/AGXkk9lIFfxvO43Z9Ot5Gn43EfDN84b3gIC6yVvJEbGYnTvqi9VbaSea9HTaYhG2/UlQiEHtXKb7bewCvL8mXgw3F/3m/226/z/tY7yJ52rxstToYWzQVW3tG+QeXdgKIUK1PX1xv4vb1MNR9kEHMNywpkKpKisWRJMougdPGI0seE9NXIfUxS12g+WUKKY5KQca35sWwP4TZ90QJbWglpSwR2//AzBuN8HHenw/4YbjWPo5AofDJHjNsaK78V2FDZxkM+ZXoEH6eXRbk1aOjqzIq1zOqhHLFiyuGKXVHhw+e8dDxXEK+Yx5hSMcvplB2nF78kvtLaTgMyC01C7FClM2IccIDnilyLwEwIaaiwrBMcMSQ4IK5k/1wCP4gsRJk4/aL7sHdmWWekvghoEKoGtKFBa+wG1balw1Vm4venoALO9sZlIcFo9BRIhRlG1iLbhu/ycVmsvM/M6IqHHRArmYaE+07GYzMwRuWKQBKiXuPm32qpvPjIhmvAsStDTI0K5JASk8QeYlKwTejDkVpcIdNc9TGCpoSwlPwVf0bkBwuJ9AfWyIN5oLv2suiMmiaUR7KXeKoKLdNZJuJOgx+JV4egWppr2xN8YwFkIHqVedLD/jRH4FPtOXf56asSNZvp+53Oe78BR2nH3Llk+CVMhFtY5apE+Mv4MQbNotraimlF0d0eKFAgrE3Xh9rwztbjXLxwz0iYAD/5bPKN0PMbKbEeTGSojTgSgpQFATKdzBsSQ1eaR/CpuFiY+FQKRmBeswER9ZqVMhFCLfh3aJ+QEoTTDG3y+SruZ+x2kJvA0CkrqjoM8W5H20etR+R43Jlgw/Lxvmz3IYW18MixIDrca0Ye7qNl1Oegk2xZmnn0NO39gdAVPnVetiorQvVAUiruYZsi3j+Sj0oSx7O76e04BkbIlsxlZaUSHsS6KAvTi5cb+UiZae20KFHr3zE7eqJfntnxPmdRMeD8j2BZVRpDaLt14fJLALFphGOgPiY3U0ucLaWbJ84EememlD/p9GCNUYCnzZn/85RoLqdks3hjGfvxDAQyKmZCg7miu9RjerTxZTvvAukcswkqomX49UgX0WEVoyPOhmz0Gmp70OIQc6pKrlDiEDKcW2DWyFaU7LjLMmaWDzG1wuOH800xP3zfTkmeIOegSliQclO9SBPlKgiqWNCYLE1p7G14/yyhvLR1QoOVoVgT97qY9PDPl7ewgWNZmnyS7AafNnOgsbwkLOwsWx1NTiaDt4z+4QfrvQnTS2gq7j+lgOUrUQoY/GPty6eOrtQxlTicEkeSJ/eaOGoQ0tyVOjLv78reL9fWYAgoMwO2g2OIikqtmnKrTewO6L/J2gt5noRhUwmUJ/KCW0SrjwzbdejFbvivWutXBcaAfCIoZGjNXcKciLZt9Kp99PvM86ReVXchZ0fsYl28ch+6rYM31QXpggsOHeFILB10aKoRTN61e6M3HaLf24+TelHdPQXedLtS+e8+cmrcXo+LRGHBmAB7jDsQ+y4iOf7ck4ScP22vniDc7FqXsge0Atz73PHrypruTxM2fzOxvj9jmboh4zbHlin3uJsxENmrNZjYADUbitXTsB0DSZWuthKYYCyrQ4Qq2/lDZBsKIbatHe2iDhz+A/hbdwZC5i7BkW1LxJIvwWpOIJ35twlaOnSVzjxhMdR9wiKwnqTuH9zCm6+qtwlw1I25T5zYCSCqumEfuTwgzbOVBE7HAh4NyXO6vR19BzP/enuLP74dMgTismi8HGmiN+vDJXy7ya2S8mM6nULIp2i9dCYVQZqVMY/c4vU4foRDexk1UGHaBHknO/S8uz7+cTodlgRhcJPauwngiWb1we7d5DQdvy41z37DpEWh0bsNMlrN6kPVv81VPedlvtY6j8cfL9PWB7yWKnbvjgjpmtVnyu2OX8dj2Kpay1suYyMMTUiI2GP7pAuzpyK3RWC5tJ4fqlNZiUWZPBgerfGXcxiWh/PV9m1p0ODO9ojeeI1d5wNeLcvy4fmy0acjIol6tCrOabC6RjXDZNPM5oF9uZxf++DLe+QI1Ay0K/vE3Yb9Ok/ffBuvSQB43br/CTMV2L7KVNt2ICBivtJ2m1dxS4oHljmlElkWJq/IMb5u7YpgDhyybQa75XPB/WPzxTjyH98O/zidXxLGuPMEQBPP++gbvVwO24SwtbO/FPu8ZrR9XqbXMSjxG8z+5Km+rCirQ/JXCmEHADiQypHyA0E8kCtQwjjCO5WkE/wD5I6HjuuNCjJZsp/KJ5CFEaGsHigcUUyVwKoGfmL5T6anC5Y0D/wtlU0IjFHxCvARswhUNoGGCLX0WEVIZSz2UlUaWeTkU+MkkUjHBywbuz3XfdlEklCmJygPlxnMZwe9j7uXbcgt6zwWEqXr29ibzdwocMNbuzGbLGXIP/VwYwW4lFNUwZTYCdgbAlyyFR2U3IBpSkUOGg2yM7bAnbKy2SubbbCk1geSE0KMb4SooXad/ATdAqAxjcaxVKGSe6EJaY8LuVckUJXShZG7y9SRHUKBKvxElKrkmakSIaXflKwS1JQCdwg71NZGI0lAf2nZpKQuDUwA0G3FS1GySfwZ/pZoMYhYbGCppZRQH5USxyOIqwp+iUNTVInRKI1QCpvG2ZAyQpRbSPXlZe9x4tpKqBn3UB2yAOyyV1aZMnk0b/gZ5i+FnTv24IQhdsTigfWRWKFTshgF9c66gxeCTJARqUdRAiVkUkPj+IHKypWiQ7IOTHIOd3uddqdQRWVobMoXvkrWuXqdjpuoFYprNJDaUlZsWOtBvk7HsAqgMusiqaK1quGojL5Qjn0GhoL7n3qqn1drnenXMI1SFmaXzn9BW0DA1P9nNwgsawLF//RWcuQzYJT/bzSVu66eiMK0kBhMiJKyNPC/XCa7E3WWcIVJt6gpONJmoLvt/Dwdx/MU8sRMLiTZLWFxF+JrQq+KJ8bCv5jnkxOVWB7xYw5bAZt9j9bBB9v5qz/gYAK8ieIhql4mIouc7vH9xoFCiakKzvo5ueDDQDBaMfGIVrTR8zHKUTGLrV2BJ6UA4G5/nl/v8WZQ7N0r9KoVT6FlcSDZb6tpC/fbXx1/+86NBhu5wQt6MInkZfaG5r2WZgUKU3GJVGF24MNxfwUacy/T6JeBA7c6TXi9k7ePBzuhIKu5YV9XLGEWW9R2q5sIIW1NQ0dPh5VQEjaJk0vh2Z7oHM8qsEyBIlGNRWmsIuanNikxyrahjc+4WdvzGHYjsYwsoy0G5PRxc/jQx7jzCZql+0xX55cpwN97My0IzS/oHLsGjgSLahK3OEy74NQxgbeaklZd5iA7nN/9iNu0gXWUFFKxTZ37jMf5a8CBdTYnDV2ksnS365gBVlCaWAF1bTO02um0Oc7Pvk9v6xsNSv0cTA1bE19GD8QuzGmo7YZ/t6FidYCqtAUPcjSg22hByZczKw+Ut/rnRAeQzcjpN+d49Xz0oFO83QIlu39P81vU12ZRRzYngoVkqSZdqkc2uLOqCzbFF0ECgLure0vDabaLkPjoixbp6Tx+HHy/V+dKeyUWSaevi+7y6Ig7nRexmXARdqYEVVkC1riH5elxz+PmPaSlVebKXtU/eRk07P9XVqXN2shtl2WoYL3ZbmN+pFi0pDXVb7IVAfehxlCEtlX04qdePncPJxAylOVdWPPxd5/HbdCPw7Uma3BVuxBkekMpoGowlYtCOfHsuL4yd6WFx5g+gN5EKj+bcZrQqUCOW5UkEdVW+FMy3UnHqgripccuFkpVlbNF6XhKwhPNYzqCxUwppyxz+mBWv7yNB99UFprUULAjh5j1EtXyZbtSTPtlDvo32qYdMY44V9RTJbWY+qJUbcktoUXpYAp1is116QpVXUejj8MBeSZdU8LyRGTwMzDB/BY0OF66bls+iupgBS5OJm80fyywpm/Re7sEUd6B4a5qua66vpGYkHmt+629V+tV+vSplgwj+5f35Ex3cTT7VAnXlGq2CsNjqxLUkqN20MO5bAs+H8PWRHbjr+xRcB1o7xuq0nksF2gYO+qgQcXY1UALa1ReOvaRZvO0LvBaw0Omtv0jecjffv3bLRU4B2eXeQzo3EEm0zgf/SYKZWurALrcZzmFXfEWftqjuFHX89j9LO+DB66Ee+QAPIhmboMGoa7dUJytppCgRPIe6b8w66d0H9F7BiYzlWtT0o5sQhKnzHU+irmdIGdjv3WYpa5MgkN+B5024zHomF2YTWZ5NNoabPchQ4TQjFuV8P39/KGatsIDV4YMsRqd7t+HoIAFoxmtOrxJ3A601dR15WI+OpSvA/q9g82ekNj8aKisxJLZEPmeO7buF/eBc1Vv3XIduwajBkj+oFNXbI4k7WJWTU+svLXof3ioJclLK+mk8+n3wLu3FiOKekvmBqpMDeS8BHPB7NqR3CoF6pf5a1heVHaZpmSZFKNHN7WbRFTiyMK5IueAra6wASmE3IJVoEF6FheRIwAnirIt5LnYQsjygzhcrsrPVLvLD0LZjN4Mk3OHz97/SnVvereQUUCbRCSLEVKiehDN4AFvy6ZkUQT9xVSTMZpN1TwMkRM76xExVPWC7LaXIpqljC+qE0k+60C679gaowjwyXTbL7VaNEUMnAzlEZEvwWpmSlraZn1/Di1XZx5PA9ggdW7ES+A49TqfNFALEn09apnnkrnNrAs+OOzJOhzNS7HDZc856rpCXdWgs3AG2RPWh8M2Ii9rJLiZ1s7sxGXGvozH4+ijDIXai09Dw+lKlLXVCBD77sGdohstdaOadhdGMI9Pleu4iUIvlb14qthGw61Mtl2H9c1/ZTpkK93kZcxIw99kCGaHOgaNDEpTshLMEqxDrOnowGGltMSoTAqXbNZCOAIQeeoMapV4E+ubSXPFGc+Gdo29t49Ro4WlR5jnkaCIKSFVlyBs2bfxcwmd2Ru+dJmyrGPcsaG2pYZZSkevGzBaxglc7rI/Ht7HMMfce54xKn0fLPtj2BmiMpVo2HwEZxUbi2REel6OAfOsdWbgjQivytiwZTxvMzSmYw1wreHZ3DDfmrnH3sMKG7OrzCqx3mW47aJEOp43XvqyanQtEp6xXP35IjGyyq5miUTW4PwoenDnP0LQHwY7irRNAPHW063jgahallbSdOBYLRkVMSNrK4JvN3/IAlHz38JgFGSvrq2du90uxwEZPNu18rS7DbuGAdLpF8FsuZUh4HKfUAjRzGKtYkod94fATze9fZKVhPZOr1lBEfBUMzIGQT+U8nPozL08JsrvWEf3uvhdim6CaS6cqbaxSlnlchyf523Y0NWTX1TwY4o6S95iQRI22bSZoHm5d9DB0AzHJAqn94EUFOFAVBUIeb8Nn5G9pAVzYhsY1VQaTZELRm/QX1Ele4i0HWBqVfXGD0Avh7krcuYxbWxdrNBFxUnH9KoSGZAgAZipJsHMRXGXYLwW+KYqJGSE8/DDfRk3PkTTD/o8KmD5C6KFJW65UudZ3evLYTreO2l+eR3n7SWoyR967/Zsmowah2ZtjZu66WU3fh3nbQSyD/rQ4Topm7rz5/xn7rbbf9tOL4GGnut9iK7gbP7UDcbN79MuwvMX1URl/GXHUONOLdS1pdS43+/TdBgXemCQqi8Vz4QbWFZ9aB4p/p8x3ceoAsw0JZIsQKWfLHrUE1Fth4FMz54yLODpA9PNYo7UU07jJuCfmeQ7sLhoZ1mkJLqYYhQpGFQkmncQ+9OtrFgfhOOezTvYSUAZ8kRxHxO7qHlBHaYusiW53sYNp/G4nQN2dGM24UkIxkU4V/Ium3cPYXWtKSi5is+xjOdvKLvvIPW5K7tt8XXAIOdtZgZ5ZuXo39Pra5hNcKY+Fb4fz9WK2BVmhGtAnVRkVJgOx+1ZgpiusVOKmLIWZ3rvT+L1isbK9KBw5/Fy3r9uL6f3KEPkWn2E9NgZVbXu3JheXwNp8ca0QgjdAawo4Le1qz0SvdA1yUeJwEBoqkjIFj7JB4QcDoV4WW4m7w/7KECPmBTYIkCJ+D5QiqeumRgnUDWYdmW7yALuFcoFtV5CSUcLQELDfRVXJVD4iiC6KqiEqwdDyM6PspyC2WRxHfSdagKuqGOG6UQ/YOHMsnvT9Yr1SxT8IkRrW4rZlyYpC3OtZZig03x+961ubZubRLeCSHgelbzo7Ie8Aj1sfh5FROjX2LLteDgFHkxpoqKNw8oNGQLs8Z7gA5QUqVG61EDVS1vy9vZ8of22hQZJg7LxpGk7Xf+3h3mY8pcUBx1sSPg+ZGBHzHqDhwQv21xtpxBvKx7WHeXQsGk7v82BM9509oPjtLDJPtPHHCeXTB18JoQVH8EOlqaPQxBcdyaC2aN0qaZ2mN2j8ubNB1mHz0AWqbCgtCVbqaIhwB88acn9sHUIWxZruQm69CvaBVwlsfzH0y2YHhH1QCEDg6h1OMck3JFIuZM12EOvkvWviUZxCeqfdOz8S1I/2Q1wpwbqaoBWpEq8kUcrwZ6Ah6BOklVt5G5T+Me3w7jZTAdDZKzzJIFwuPEIeuD9yD2e551Pl1lEA7yhebqtqzHD0Jtxt5m2wdieuhgRhkTPlfzYUReSRdjAGxtz3saBanZshsSH/XabUOXxsAv62e1KTXTcKDW0px9W0klf6dTK0G/747zdBuJkvZ+QBT+kWwdNYPC7HNrmqgiQeInBW0DEsFaSuML7RHdwQbcwuGcpze91Rc7hPUOpt9Rbehp2LHFPEH6zd7y2czsuXd1OwYIevAVN17P7yT2eEpPz4D/HYvzuZza5X29tct7EENvykLfhwsaqtr6WCjEwOiJMhfQiYHBEWMDL4IzSwUdEJGbDx1k7fuXa/97edzHeLxZ2G7ztTiGE7ifMYXA0ZNqByIEEZjHb2xN3Yj1Hsq26ys0kqlnZdCaDHe02xx+HkCJW2jpt6jkejhrS2Eq78/EqZgeHTbUv+Iy6eVAnW5mQFshHoGy4Us1+ZiZCarDZhtSpZt33FcGgHGyyCqniwe6YPe1e5jEQyDOrXmX53cetJKnSCfpP0EFwDY0+AEugAiVSPw07RiEYVDG9EtFhdI/tbXdpXl4vFLcvzc+fC+F3L4d9YI0bpxUKZN5b8WA76HUPbOCLMtQykSfRUBxYhOxvd5918CCF1wgcG+L/EANvxCo0Dlg3RPgEexT4Hf3pWokdoMIN3BcvhRbWwKB6sbKoohlUtg+JqrgxnipyKoCZF1SeVBhkEGn6ranAeqGw34CYeoBTVqBZYsG6844/w78jPYlYPXiKdLBJVS2RC2RDbsJWFZt84bSC3lrcHJBlW9crCrFkTqvbGv0yns9LSHzN4IVUdF0BpXsTrizTlXsElfImuMy1iSUZr0RZgFhceuFwuQDiItcETV3UB+RnS30shFypz6Y/QhnNTGoyAgKC7UzJszCDol4DK9KpvHLmtq/74yZyuzIlzcR9KRtGbNSG85cG5sECas3jAdF8maHHXYc8HOdTIB9vMjkbtlTNHc4y6n8EQbHdd6nIRfLn2U98L62fbNxuTU7sOqSvxNSZvBLwvoTRZQwZVjh3ukFwR2ZnQmpaEevFksNhAKsC+LomwoNI3cAIQ/fLtTZh9P68r0e/QZ8r1KZ5qhEEpBp2WMP6Ale2QL1s6kayFJSzcpCKIG4+uCD3mr7/1/m434XocVmb7QtUc+Depg2pcf01nUl+5jziw3wKugW0picE28jcU6zRCdxN5XyY30lIYqZ6YOZg/tsThwoEGkPoukQKYSUlZDrsfaaAVkVEl7iySlGXsS7kuBDeNnptpJqGlVAIhKAkG4nl2odNf1zmr+M2XGFdZ9qPujRpHNPx+GXefR2388sX6QgeDGsuizqzvsIm35VWP28ZO4CchSTzwNJPnOf0e5sh/p5PgNigjUiV3Ehlms4rzBkdbVYHsUllOTCaQk5G1frgZ8kOh0Dl4YWqqh9mdpAyRY7H62GYqAlKNQOnZB/u0avqDyrPwj1iFRG1W1Pi06wiUtoxbLYTVxa1Na9yq29/nHfP+++b8TBuQlKkbi3IT6o4zA/29DJ6ovOGa5WU0RNKfMpi7RmzjBsKh5lK7FiJYhawJJONd/R3qOIvws5xyGOuatUzLU16Iopsa3rqHYkntX3YnTbjIXDdzIzmmhRQMlUTpWXSj3KYNvO49X2qsjFLQrOn4+m8lI6f3gN4q7GLkKNNmB836PBkw0cd2wKiNMoeN+Iqm+pSSp+ErQ+HzJe+3yFybJyZtlXGtO9sP/B0DrpHLUv7M5jM6Tx/hPpaC1PF2piygXrGW9QaoFaWXSkT5tndYMoeq+4YKkBQvYx5xYLDRB8v1dWYkBCLSDEKqkF0fX9Qy+91F87FfV+nkArRW84ssCINdyHGtht0XO/ht3kpHtYfoAymQ4PDoowxJnjwqgymVDVtmAK7pcsUiMi2nZkMF1eRsQQJYlqJHNFxJpYIRT6dGRezKz0uIsiQF1FdobhNimUkjhRYRmXoSBEyREpCgkEykWTpgiODFUIurfyEAvsKIAQEqGSr1KeNIcAa6aIGMhBNqvyR/T2T5doRXYrNfdWaVvL2oWjY9YpCCVwEwaf3gb/WPpWW5XAObfxQW8ayktUGIBgKsA1g0pbvBFl7gp4K6rQVhKfvY8B1LRtTWQ2SMtQk5wyyBVqbv5t/ytst+8JdAWJkajWp7VnbCj3T9/HjEFQmOFNEW20o2SM08ODpZLR377cL/AWb3pbzau5D/fVvvz4HKhHmsZVD2b5vpkj238JayKmP+n3EvTxSXTWS3TJWtRC4PWeEW1ofDOeH4GFoUw1IiO2lVdvouFm0auHB9hplhof+fRPwjJ2NGoFeKWRKY8T3cfcWOP2dyd0bMoyw75vtJRJcMQt5c6Xi16HC9halCc2GtGkCKAk6crnitoHxsGFX6K9WmTzt92nj2z5TcoVnKg5OMYJNJmb4Pm2+vOyDVuy9hlOYzr/zAx9HsN+nzeUcYNomkt/5E54ZMFTIMsWjxQNVuUXgPypJx75ZGat2vbNfu2pqC6k6fjJfWcf/4C5hw4fGTAMwA5/Ltn9/Hy+nWB7KTlJQaZOfPONU38YP2RQZ5zVH7vk+B8ym0u5LnAvTvl/VoII41Wy9UotXhdShCqVapOqY8MsFMsutAwNrlt/TRRqKzOY8xCK7TfMZyZD7UIH+uiZ4AfAr3Up61/fDHHZRbq2dMRSZT7+M4xNeTPVA9IpySppEPqEkkoQLMwAeLQm3ohakVK2tUH7b5GZwDvosV7UZRMI3FF+DjTZArOIbgLxDdYUBma+oz8ZfHuykw+zHdZWpYILHZA78/izGyNt5E/R3sjuogDLCJJ5qBpRQzKJODH21pDZVFwdAXZGxg7fH9g/mygaWkIaCBC8/kKZ9ZyzBYb9bkrDj1jfopies3NUEn055qTlbsQ/y3J2ZcutRJEZFuZRmXMU2STlPfblzUG3RWjsDTfDK2tYKmb7f2rT6FDXTJhgJslw2LH3X0ECWnakYIeQOe6DQbtdmpjhrt88hJNqa4W9OZX0Z6LjzF2RZ2ohzNjQ7H33WeGW/26Nx9odYHUUfIwsyvdbr5HD/199+9XmYlU0Uzjzh67gZXwL02Kz1gRkDwwFnDkIJVoTe+2Iadw3llF1lqmUCMFMRP8GiVXmyhbrlZ1M1bR2kqDIlG+IKBKSNnQeOyWFN7at3AavCY3rfiCA0TL+8l4CLbQgBAgzAwZLkCFZ00FFYSsYfTicozrgOBa19DNkRXVCYgmuJB5P+BR9bwXOZRbHM4Jd9ABW7wSsAKNg9LCFoaI0b6ZQ9btrGsAb6lVI+Z90lfPTaFK2DJJwiWqCGOdTsJA9VvDhVzxaiYsr5MrkmCUZpVTKcwwzQaUuoemr3LUdT0QxQ5Fnb7D5a5vF53Py+f721CRy3AWulcZoMES7MVStC3eNj/B6OX2oqcsmXWsfqlPE/xu937qg3fOuP3viTZ1CHXKZiVd1vqdpazoeP4I66XxplxZM6gj9zx8txG1BX9Z0SJFUQgVK80jLRfPSJImyF3fXiNWz6YmtXOTKh788COYNVpFpoFtPS8or1NYr9AscMqUSVPCYjhjyYZDolwY2J65pTjAiP84Iku+KysNo1R/VVWk7kULBTjeKyBGyKQN8pu6YCgaSheCgmjX7smFN2A4fV+nONsHAVt7/SuqD424gQ4CWHVFdopLTu/ZIzsxIQo1uzzR6TAQgmmUOrMrfZbp9DdazSjP5RR82qaaWqQrY+0uOtTUx8Hbd+WFdVJvpIJT4sfQgYyyEpM81DMsq8trKHIlTgegUxa8q/xt1LNYUNuU5KU0OMWalvqHLyVNbTlvl7HT2/ojPRPrKQYcogykyhJdWiSOVmCQCayMvreAok/k0AtwlNSHq8yzYI/czEUtzC3BzRj7VcY2JY/yK7kHywaXoJN1hZ2nyXXMw2BaqqrlaJgqcm4aU85YKx6Zvvb2faeK/p5vY6T9sAKzE7r5PkoYtZcagwv69KU+0XmSMe1KNGofmyx2XAQNV0MLstZTreXMf5cTpPH8HCNFHLf+fCnLeBD1dUpsQbu6CioCeTOX6dd4tt/+My7TYBgVShTk9g55YlCHQPHOx5FxILbRK/nUpZoouTr0+scRlWUJdDwjFVStY2UHq7RQgM2EhNoC99PVwyC/46eEwV90SWAfHiQz2c3PkcHMjm7PJAtlH117D6x9ZMTVVbl62dAXwN8ypuMFn8XtUkcmEs3FIYBZtlZOY+dMrq3rJyrdLuyg14ChXvHtByWGoE5wfZPijIxLQzOMqSeVCYgfxkgBspF6wXVBTBLppQB84YZQfIFVJtlBWPDO5yGydKesgmasABABQIiZregoAGnlfS3xr46ckjQ8iCRdCymUxnO7F+0qg1RY0oyQUuGQK/imqLqOaArJJS5nnQHmVdU5SS2jCKt2VzYV6DvoZlZ6avRWUzPUzAW7G7JJUuZ1O++xu/M8vUyh7bBYXdNo7GXQLJUinCly/HUhuHpIsr+DOqbZBIScklLF0GA4klqXVKWacAeT4kdlEqWLbAXVuIL7W9/R22oy+YYfcoiHbxv9M72Y5vgZlVfYGfUFeM6BvT0Io9ByO8k/nr5bMpPAQx+wAEeMBpPFBAEd8PvSDKkoTUOvZfvGay+BPV1NU+EbZj0PKrN4ln7NpDCibSkBn3ZLsAlLtFZSvuXDN4QknQjGjRBOeBH7HdB8/f6+4PA1ZpnVBeWm6Iw+Cnewi1dpnv9amqMnhTX0ipi4ZZ8aZVmWrSo+KyqufZtxKnXsZta/9ZO18sB4agTwlgEMjLqD5db5N6+FI/PAnP1ee+y7rXDfVFaru3uLo/e//wSdp1z5R6DN+fbk3lYUpt13ZnqOt4//kxfo/bO2ZK1nNh1XbvRey1OYpTHYrk6IuoH2TkVMCxBgpJdzYqtb2EmXsz0GcrAggr0VMswczqgFXCoIv773tite0ZLDrJ/jpWans4Qx3EyVWE5ZH/QTZNuLZdH4+ScsrI94m5J2vbiboehUw9VLbIC1LFSKCJtHVms19O7+Pu5W06pyLzQUvrA0RUOGEH4EfjAizAVnsy43vcnuHb6HvNg+7AmdRLB8E09aX049b+g5tPERLwTboIl4HyoDOg2nXwQGnAiqLluRWGTWZ2Hc0CE5Iago7XVw7ZWh4vJJGWJusXdS/J+Pxe5JK+z49v0/z27n3m3sy+V3ATm9a2p/vtdv8tgFQyAmdrUJrrkNHRYwoWZ6f2OlagJmNrpCUEnGLxovR9fJqEXakqkACS/nJD+KVYbbTIMmkQiwKtB3ol8AiwUbFWsVwQilIxSC6I7eK18db3C0Ru8qggZYC/Ukm0W7XYRaE9wL5CbpJJIrFXtTx8LQ9PQTDx9Bk3SgYURNxaoOq6x18h2kR6GWGn/Dk7heMCEakUeiGd6QDpyNEEbEe+l2ooJP9YzkxVUii/kvdCjogi+VGtucKIIGYikRaZJvKPJZrCUdjJKoxr1uGoJcTQBN5Bw+SeUjNhnWgiUI8KIwdYg4K1kqDD69ZJUczGBKdS9GfTSQreaAkMYK8ssAGKU4L4q3OPRGtBucFhoHsFBLrjXksJReEh4Uu16I1pPTVJYCAuKI0iwhcYr1GmGlcgkKHtQnwUB0cZbAccB7R2ci0byg48gEB/AArxoHFwyUMyztPC4/SCCPw7BhH4lt3AcCJIIgXOGoVD8Fv24UEYpfo5xOINGvUEmgK+vEe9ArOGCCP8Za3sRpE+UrSAmKLirkDzHNYOFOyrxC4TrDEABaRAiy/F50eSB6CZqupTwgF0K9hkiegtC3hUkzFm0HmVKhlnyiogXlyvUNqu1O3YNwO6kbhbSu2cZfFJ8ULco0K2Hb0+SuxLlfdMgX84zcoa80fXv6beBRBsnDdlo05dpjsQNhBNCEm1RKpI5qDQOpswXzXd7dB6f1waSh39+LVrVYBG+1gnkoGKcpzLaO+P09txfwmShG1rVv87ZgrsSrnX/fFtCkq47Fqzn81k7Y++jltvZgkpAqtMFvi3td35abnHGMiqmWzvNOUspalByEXJMaU0NWBz83Q1BBucuFUSPcvrBW1MzJpMAhxqw2Rn7tt49JbTYNJKsEGVfyaKPWKbexzlyhHB4aWSPmHse0165RNcMIzYxOyEVsHQKlPAxgwZWCXaTpWt/Jsjr+wvgV66KaE0sL7fLiyNJOkrm1OD+eXZhgWG5QCwCXEF1D7MuILhBNiIyDWhE1UJ9z3y0eXudJfFl0NaD1kErByUOMGpTTYGJa8GPooD9kcZeMV6g2enspDwQWvsWJYLQP/xkbdHH49kyZp+H303WIoUbKbKD8hxhH+DKFLlN1O+AjVGVJvAnNfAnA03EcvH1BmbamtK/hJiexbfthli87K8/yNAE8zSM1ckihYau43QdfTN/rILktcqawEPyVXw8+uV9bPX4X2jUZiNr5xSL7FFCK5D+tx2k61UyuKpYsEebliJ7dGcNxF4y4ZFAUXNkBEhGQ41TL1mByc3AVP7xInp/qZc4oT7i5ZOdGYr5dzZXtJ1KhMYcKulO5HwdDVgvhVf/dv+GHCJzTwOG7JBfBLkldb2l46T31BrMME6RJEkdEGURBf3DNyP2dsGWjJFpgVZIhrNgf6KWl/Zesqvx8nPcJR266+sPxtKB3d2ofN9k4A2FUGHcQvGGM5DcIT9GIN34tFwq8q5WYu1T0F1MbMDFxGyhlIpNtcKC9bZCRIHlT5SeUUCFBYZDr4U1JNq8kh7QVZqCobByyk5riTkgsNaWR1YLHYj/WfBK4xGmMZLLHfAOmrh4y1V3gsHjgJV0KgMH8brSkCIJCEpQOhDARQI4lGXoToLKIVWuIWE5NWhziv2HWDNI7xqW5xm2YKb/e51DpPemnrBee0havzIBO8/pt1Xf0xlI9Ka2Y/HfD35fRF73f1AViIdVJ6N1LKn61SupKMe9757kuGdrdF5fz392G1CVrd1NmVZ3ZetV1PcmgG7ajkkYDzllTsxPSt0vVQJBx3yf1ltU1poE/s5KaWZkc1cr0oWChV77npafNM+LC+hpG1nEw4zOnKvl90mUgKqbMUGJU7nTFQtd6NxG6g5l1X9qYD7coza5Tq7FVIk5qJaIbFSNdBrSd33bZyDycr0fLAf/208+BIZJl6lWozc942SqMI6R8DGymsH4NXhhMgI6b+NPoO1tutlcLDfE5jJ4abddKvZ9VepqTqTowa9Tfv30XcOdbvDAWkocFPLGspPZIsm6J+QOGWaDcaIRFdyRKEOqjBs9pfOEFPvr5Dgo6kM91OlIId1weh93MNx2synUIis1hB0Ax7JnVa5Ymw/gNbVLUwTYKIBJCGPWMOEgpLscFi4pl77iucrjfNl/ph2yztGoX1f6CcDjgVDD+zCpVQqcvf8OvtlZL0HIkQdbuMutGvu9DwvXSjjW2kxFVkY7HOFw9Y1K32d5Vb7/XbyW7n1qlv5UynHENOuqBp3zUoh/OU+P/xam77QqiHilzOj2zAB0sTb1bjJ5t0vIO2VQPhTKaa+ovAvPIkG9OSHN3mZNvPHuL3sFqX8oPex85bdfcIqtqvDIUPZyxX3uxZ7jpfz/kpnOgasm8Vn0FRZYCwpPl29kpK73Hd/CXpY985b6728Hl4KeGbTrMNQ3qZzRJ/uXanvIiE04CTWkTRIZDy8y90qPgfFHb3TnEnxNckmaGgxmtW2Kej31+t+f5UcHBVAsYa2ollti7Z7n8TVO31oSGhJomtDK5Ho6pS5Sdm03/bHYJVr7qSE6BUoVA0tRbvaDu2P44vPUSy0+EkNw9CuNwf74+Y4jecpPmOXQi41eEXQIMEuX9VSeOGZBrvS9GLXbtHkTd73x2B5aTKpgDdKnoomNfFy1l3OxzlcYL2+jdhrdvWiUV3ZSWm5zbXvsn+bQd9GLDYrjGhLV7YexG1e98fZX8e6wgacBddU66fpOnA4qq6FENgFqItraMhWCju9Teell3DkDpS6bgHMQYSwisPUrrbGl8v88j6/+Z611rqpBAmtEOU2NGUr+9HfbxTw+/tS2xUJpyt2raU1W9mc/m1+DoINs8IhF2zMb2PovrTDn6qVeIuqA+0i2J9UB1+G9m2dM4GkVZpDb9v9cyB/WZq5qMdJjqWZFyhhdv3k2z7gbNudAiJegSJhNTbX4S3Qyl46VpkBrpJGMxNNb/vjvN2O/nMPOuAC/g7NVKSypa928HKKizn4/zBfp/t2HP1kV20r3AqUy87TFcuNbUXz6y1eL/7KcKZmPJjD5PeCaEXCHclwpa1B+HYcd+fNcXrxyyqqTiO/OI+E19CyQwiYjfQqh7VuRXCILBTGPyUjshC4POhnMPHVqKjHGO/bGDjupck9AQhKTbJoxPfRf+Pa1PNYpYX9Pm5ffVNq4sliSlHlr/JFmdYfS81N4L40ttK7cPfBadF6SJVpwpebBO09GtPQtkzd1NnH3gaikJVZ7kCqhbNZQ7chfce0siwpGihAK0o1Tsg/ddQt3aY/ZDDQZajT+/i7b7i8XQ0uCcUEEKKxQ5I2O2Aiq8QmeLGo0lPprjs71HrAAKu2tW2yL3o4+If00jfHPHzsdgrvAVnPNSZST9GJwe4k9T766oKF+VDUQ4MF4bKRDwKfl8nb+0WHJCQZHLcLJMTbuPe1Fn/H0mTbCVVUgNWBx9PtG2BNmF1SUmHI3+bzwan6xiaRK+oSuaIEoV4lG5g1YmNT8F61mh5J08gVwU3IcBzfx0hYy1x9/9pujO9hjsHZOQaJB+SrkLckd1J0pQR1AbGxa1gLEX9YRUNKEo3CZHjytabxJWwE9/CQi8HjDkE8+W6ujI/CCGO+8gNBB2C1QILt1zBX19pm4fo+gTajjtbKgkOzjR+ymmUipFZEUfl+A8t+lWYLCDcUerC5Pu/TGB9G7jNtIpeRzu+etW9snbU2kYLLjn0InEjzGFnlRL5P4/H8PAWkd2dmgGMuTnpUX+Cuzkwk3t8ukn2fAtVTMySBo8uSRLFwKTlasHF1rQ8CK0CHyjg2tlbj+/Td522bCcpVvO33OWiG5Qa70XyhuOq2ExLCM1oGDfouZdUl9lwlB0pPLAVBharkAIPtvpyt5/CNXFm7NRzBfwbJIqZHmI/oq431JvmvEgdJMeGl8hMKYhKoQjjMMYuq6eFkjeFlE2RvXU6HXCwMHha4yH+lX3EXqqlZuHOt2uTY4+23YXxrC82tMk37bXAWLkz0B3bJHujgh98LHqPCgzqhLW6NFRxnpuNMNjRel6zkyu6G9L7/2C+kh/0liL9M6FBrY8ea12VGp/x9vw9pyGZDwBUIXS9rGmXIpUO3F4cKzNIxGmMlH2sGMo8bSgC2ngYTCux7lrIw8isSMiaJAnWcIQN+AsVkcSFRji6odqIKXfaoosdDMkV+BalB1JxLyAO5RVahywyhNWMjhFeSkMiQVVaZRbWIWwZEEgP4pCqSUGWuqeJWOItYY6nQWJe0spAVxSSpQlZHjhv+Ak/lBmB8uIcqUE0Vo+LgRq1Djlq2LK9AI7c1reIqvH4ZcRcUYJW1SadUFX1crclBA+UUE+3JKXG8733eqKntAkKOcG7So11O0+/TdJh3b/PuPB2/Rm0paq1fw9amw0r9q3c/7VOV5mkg20EJUsg2zyhKQAePMgcIB0vV+wWrn0ETd0mioDt7yH0LW3+XTWdr9WY+5vnshwam1FRVBZMTz4BulI0rIB0MWhwEOVPd3JiuZrcHjY1E9b/Km4En6XrIdSY6wWnpAMrI24mva5ocJWms9WTRWQZ8O58P/xksaNPHZ/tptV7Ypz1RTF/nv+0v49sUiIl1dl/qB4P9uvx/Ae3Arlbl945qtvM3+PW8OSz/F/b2MiGN2qaBLgP+9a/jy8vx74v9++shoDOUlTlsFlE9nw9fjtP/irtsFjpN7vjt7sJwj63V+XzY73xutStNm5Vo3iuLUu1Gu+gp9UUzIGy8g9P7MdqFj5bWKblQzZPl0Wh//fXXPy7T6fzy/Mu8//Vlvzn9epxep+NSk/freJh/nbeHX8fL+X1ptrgZz2Grtk+h7Ofz4Xwcd6dojTnN0ZBZjObWPrh/HN6noNNda2qHl85OIgWt7cx2J7nXnH/79TSdF0HJU9grr7G7A2Xk4ufflg8R9d0zZb/zD7fwFr9ciYtfrsKQ0TOaXYZzxmn+bdpd/DYDta2Inh9IdRuMXrr+3Be59nqJBvtUUmz+jcfG336df/v1b7efnPCjILv3uc+k7PJ2vxm3V+M8FEURfS9T8js/zakbxGN/bi3cTMy6p3/ks2fuEA5W23J32cEWt/ot9BZtGsGasaL3tOVks8P9r2+/xxv/M/Us829LDDFu56+JffC5AT/G719exvP4dhw/vpzmf0QDNzaKnn3p/etrNFT5mR6v82/7XTSS7c/kR0pbpMZGj7Im/TCeTguRN7YX65V9jJGP+/N+s98uxumvf/3b8uF/LNd//9v829dxe1k+02//Zfz8l19+iXZV97ml+8e3wy/fpufTfvP7dP5lOcL2x/kf14qjeEl/plvu/NtxujoxXz7m3Zfz+3F/eXs/XGIrZoZs+ReQ0c/zx7RPDfu58+20dDA+/mKU4FamWFR+KqJR//N/PplnyP98Wtr4/va3X7fBd7Bd20/dPH0G/NfltDRM/pj+Pr58zLv/kq3w99O0OU5n++FsyaiffbjzJjkxg3nvjBr4J+6dnJeB87Jc/Nd5//u0+/vhOH8dz9OX36cf9sP985bM5SU5Md1/Rcb+7wtbw36kz/lpqUf6ll5F9q0/09ssdevbf2Lq/aKi92dvMe2+/ueDttqffI3zy3Z+/rLsvr8nDK0pTPZo1GUSopPB1j7JWkBr98XO4ef8uWWHxb7h54798/b0ZTPGB9bnvs4y2tfpOL/+iEf8DMwSjHgNRowntsHx/PiLFYqdlEem+JGTch32y/d4Fj63Pm/DJSb1cxvVsoLxAv3corrsXubNbASMJvr44Jl3p/F1+pLynU228YOnvB9H8ddf30bt4cjXJWs6w3bVfXYuvsXAQUaoPT9SPJTZDWfl6wcMUSXP/9SDYFglainXVWrMLwtm9zqH7ext6KSgcpxNnOGwAX3GbnPKLmkZbt4csLbLxvpSkLeM8rSOSUN+gkQqNtfrdnmOX7fz67S4+0F6zcxGJHJtyYHvIUSYt6t1+1TIlA5FzBRKD+zXzlbWxIF0y05kFLdCDp5sTBBoqJFIGacOpBWb9Td7BQWliSii7gPZeaT7KfIOpqVKiv2/zL3Zlhs50iT8LrrpufhOVezLnP7nVfKEmJEplkgGi4uk6qf/T5CEmcMBB5FSVc9cNVslOWJBOHwxNwPsGO+dwGLZCkvgSiWBlGDqjnDPCklMNJ9imCnuQbLVUhOPiKoOVkh5Q3hJDKgsWG1xLURjYcijJ3QMbA5RkHOU/ZZKfQRDkxIL/yLaVIQVCpsBWi4bjRizIvhA6AKC/5o4XyHvTnKsUOi9cfcmyHkaNAPBuihakw2YsLPYcbbvh0VLflbmQSCgKUGD1iNTNFsa9/V88L/taEkNBtSN2YMWAP0EwGK7O6rw0a7QPCFns+9xv59ft6q3VNo0W8MYYgVqW5Ib5v1eYWNXnN1UM31hgSnkgkKL2MU1KePAsUKcK8buq9Yendvu99eLHg9LVNyoeQJAi0NTkVXQzXWCGQ1yFg4gBTo7yFl4gg6QcaD6GpwgZAOqAhA0QTAP2L7gtbPlNLf743w6L4eQh6gwqSVT3drt/rib1z8JDZY2rCXWiBdnR+xMEJoNEWZyIQEX4SMXOg4RPwyqJIJ+o1g/IvyEj8xgK/cf0f/+9++f/8+/P/u9j9oMeJLBsmfYj3R68+GDTXqggx+4cwgqfr6ucs99ZblnwCkdOtIwu5wuk0Lz2tLuJGJOBUb743I+b4NxULuJkADgbvfH0/JNwStqOyVNvTtFmWada84b4HvhGCWcgvsBvH9AzOr40TA6RPZV95UI0vOAOtkZFKSrgJY6KCdEjnH+hbBRFwyHdPmCId39HSJKMeUERKmz7LwlHG/nAhSckXAmIIkjihRpmMSRAB8n/DOCT9IJRyWcSZlOrkYyOf7NrI2COdZhAcVgl+CGBZ1fF1EbECzVXXDae6EGVVrpqBl00FEjJBEuOxa8x9w4/p4I3hna46rEiERMfgLXLAYoGKgzPAf1jAjAY2F3hIkWAS7P5AKYXzG/SGSlEOYhvo/4Y2KNiSaOYIgh8xrVgRCk9/h7uBakc5IREZziUlKHJNVEHRJ/DMQyeBileE2EURfJhUwVwLKLecmuto+Gw+flhx+wmXVGd1VQYwu5WBGwiW9cRFm8f81PGr+2ze6qR5xas47WA7VZUI8kUbu6WddURGaZPhyhDHm2WxYewrHJKKe09Af0AnhySOwSFDK3+zgr0peyM+He4BZ2RMKG0WV/nC7B8V7b8XzyTH6dj2vHSIUgRWvSpdPd2mQMwqyfGPWmXXxaZWOPqt+teGWfdBQhwgB3XKKGw2NPHCZCkSx9FWr3d2ZhDOqATl7LMLkiIHUTsLQJXAjVlkdN5ICJHBcPCLZ1Ief1Oq7b8xedMyZ6ZXoW1rL9bft6VcRCdt+brH9Ul+eUcEJdfnt4U5XpvrHeDzQWqzq18d7VTGFlsxOlP7jVUDCtbGM2n9vyc9DRLBghcxPKjtQoZLmjs2nBt4f303xWo20Cao3R3YE6NiAx4Jzug4FHvQdUf3HGArYMJQVXh4CyCSROXWQoBE3dYUhJUUTc7ngEP5FbnXqfLghDoC3iaz0cGCl+uK8e8+1RASMh1FniV4Vf+BdCiwF/r+bHwV+hUoOQ9kRpgSQvIuLHJGs0pv+bI3lOIAulmDY8fQVXBim6C5Z4EZ1CVlBEp4xJkRbK7RgZIBdxKiIi0hIgwiQtQVQAkfUpSm+xZBeTUBLShZhrcVtbxItCiwHXAonSqhOqDD1+UZKJFGIJ93/7wH+fg+98Fbe3QgIcRQWKQ5Ti7FKn3n2103zcTV6cYBNsZfFhPQwf5vflsr2ViuLNsVpSRrcIeJ+0xA7by8vn69sNoeR3FT1S3gEnYW43/LC9bP3DsbHh45SoRrlOO054PmTBYY2AOsIR+WApxct6begxot9rHfkOkRsGsp2JB/KyWQ6HeXN5Oc2Xkz+TU5uwgzYUIRQJpGSF+Njy/9+0amz4sV9pRQJ4yu7OE8s8Vtkvr7Pao53coyoZVjftnrkYg8Tdi8Sc0ooRqcjnTySk4StLMa3zqQGdk8vnexRaKE5ZkOUlkxj7sfz2P7oeab4AmcdFFHwSKjz2+hc/9G/t4TtUdOpEc+awzq8F5H19aw7aVTZX8PZwvPrvpTcdKeLe0TV1RhdVQf1gdO8PtCej24AUai1xuFLbt4Evasjgw3gOA90NjraGOxHHWJ8APKx36geihQ1RxVYrC6R6mPEtea6jMlh1rNE0DIwTB855VSW46Gy/MtPCtkDsyEl7xhKJT/A8n7TOrV2OxwhwHHVAehL+Pcr18dNhhomPKK2WKzAJ5HvBcSGYX2AlraorMAkshOKaBxY4UbhMq+8SiVDw3/IQI+MMO2AxRAAzFGIDsN/xOhNsNffXqfxZa6PQk+HD+Thv/M9/6KzPn7xbCWath0mtKNKZ/R8yqhVN6mO5TEqXcTCpWNjAgdsmSofF/5alcqQqKL14KBiWxfmLJXB2RslCwrf8IbUjd58+gsqs/yG7dcmRZXP2uVlbu4vt7hUioWFfi80rNKaCNhQTLsGSSvnPSBOFXBiBmGf8rrxtOwrw56cRqnNNHwl5aipgkrK/pA8jDirENw2iOI/3aTPYbA+XuvLrczJ/4AUII17JjnLzCWTlukhMIEjypFPcMHOgfXu4dI1f4RV1Iu8IHCIPuXG5QcvjE6ijsuEbgC9Fo26kQDxTQjRe0g9i2qgRbrtMlmphHy6x5yk1B1Ca6Rgufmzn5LwBPf9ZNuZsPZ+zaEeKEzyNEUwiA6ONxAjiTzQNg7uWwndCxz5EzwWYucSjOav9aYIgBIFIIqm6zKc3xYde9WbNtqoEki9t9TDtXubTafHxLIU4Ez+VBXxRgRZky/1f5PGO35Y7XY8addKW1rMhkvWBfjTNftP0/ibgnmAGNhBEVY4gy9Rj85j928QwsBa6g7AusGfsQLFoStGbmKQsgWUkRIY38hC8f0+0zPgj9nViNRFLJ5Fe2VE17ImvPYb5xWqMvkny80txOKN5+pEQJdwDjiLj9SRiLTtyh70y2Kyi4Y/OsIH+pU9j/M9/+yuZABFLYck3CQf4NinRmb415UgACGj4MaDlw20SOVrEwxeOnWFvIti9XeCkfFVrXmRJBcvEQAiseqdDb8vRUocbZLdCWjrhE79tA8xc2Znwvp5lLFttZHv4tmwClGhvjglRVPvRkbaMflUHwmDWoEYS4drc4NvjNz84lHRyn0Y0cihUC03HqgPwVq5aDvqfhPR4/yMPXWpVszjUJTC9x29NJKgbpLgTQqgut7B/Os3v192kgKqjPd/3s9SdW283mwxArohGcQbMskAZTWO1S+a3HEhyV0Qlb/cDHSP3l/GvoGNPAKX7QQBl434Eh7T7/GI0foBUNu4H+PyCrNQZFJBK9HUBqXT/Cims2/UEWYL4NARZulNVsHW6+rVz3MgLOs4MQbKgdj8eN8gmC/+kdz9cQRwYTfdSgB0UhVnwX6NC+1hrdDWO0VlGPXbE/J7oM4vuMv6M7IBsFiBQKphWizopWAQR2PD7ZvInh6ig04DBoAohTsVOEnUaYhMCuCqGediDf5dauOBGx78FsCYblTqE560AF+FslZhV/mISyq87DGHzR89+ZeAsF736C6Nn0UDzV0bP/gsDZ2LMDP9VMPQi+cKbGQkow9cjUAtCNR5oBNEt5Z+xiYe4Iyb7gF5wEWHUlHzA+K8IfzlUJHlQEToLFmC0IAVGF2cNMbrETQi0Lv4ecbtQ6wYgT6qWR4Us8F9xpeQIZRPq7x/sC9lHISDltbzYBgtlCBoM1TR4v2x54XCU6BCBCeEQHtDEQhuePSuWp9m9wjDioCKsJ4W486tSzZNYUyr+EMhDKZ4xU2J5ez5cd74oaCUlTt03W6PW2FJ6tsusgZ6XnU5Pqt5UNaxKvIoqURE6//n9+Ho9rQ3cafMVXFSOIEuViz3R5oYvJJzDjy92vvoFrSKhIZKYYFvt+CofZvuFoebjkI4bvCzHZbe8bzfT7rTs5jsrq+pEC4AAAUOP9+oca4PslMlQC6BuJ6YzM8uu5xsb6HY+XIzrkjkDQxggDh0bNc43SN2XLeKXDgXkPlNr24dP2ETlLgPAYC1+4Dm5pXFeBamAcI7BnBSb7TnxfiLwDyankAG4Aa5YKhBmAC4GD1OBD2UAnK5yrQtw8zIVwJiVSxeYCrh/jnmrVCrwsCxGsVzg7x44oKIiqEf8nR2nI+pmTE50ZyQ6l1E39u/AX6GKmtROi8TfiMUEWvT/oag7P8JOx9q582GMtXMLx4y6WXvjv+WkSayszEicvz4Ox+C8WayEzNLwr0A0OI0WKxIznv8V2AYm2aJl4KDq5E2ykQUF0fmTiB2xsZh4Y3TOOarMaPonImfGy0AmM3IGNUA5wF5mNC0QzCJK/jjshRNvsbI3aQpyo1oER4xgiWDWsWz8iJ1PQfE1gZVyHoM9tFoAze3KsVvGh3m0Vqsa56vzUbZRv8XYmzqJOMQ57UqfOCYIQC4K4m215dwmdVvebR5yWPA8evzAWVDxeMB9ux9BFRMRC1Itqi7Zxcs2CF0wCujcYu2WCIcDmzIIXRD1ZcQwIj4Br1BYhtQMKZ17Pqj2lQV6VzElSwidlxii9I53hoM41IGIqlCsqMhmxeIb3GtUOJUFOYYBCIHl0AgOcB7q0cJYBLsF8C1bzC0bVpHxzK4Jj+gOomw93Hp+sYx4i8ghnIt/FEdqrAObPkh5VIa902cHZKCVV444HAryxkRKQbKwE8FssWCD3o+UpeURw1Fq/NeI8mhM8ilesEkfQDxi2EVFaqPVWm8+A38PmmIJsdzt5Tz7guVlZ3pfhnz/2LhUanzgj+nb5DXBzAtlQoeRaaijuR0kJseRbTnf5Q5sThm4Lwnzb6N7M6PL3kU7AicBfZmYRGSYzq8c/4LAbFEe5RQDh9ZFYMU9zH2NvwcSAHnScBYCAQ52rijM4UsAPYfYX4npyfVN/UsTG9qY9dD1hxvaWua362W7++16VTyQg8nPOGr4vWX5vDltj772mIlxx8EsRI3htEpuc0bN/ExtsdY/tpeLAtK1lQWBFd05NOVcCw7nqCzDs/jOb88EPfyxXFc4mPf52YEf2AgCLhgxcpVNo4J/m59ip9JpQX3A74UJS5R6g+kHPP2TRCR2NmQMgj2e87+UGJWpVJ+iZXjY2qlCcJcoBDfPjClZIFvbSz4Vcyzyj6tSymxMvQZUpVwCG7X33dMJrSpZ8iwHPPYkyyxpw2JLrLoffirRWp5GMCqhx48TBkU7UCLha2BjrmRqzVSYNDDJi7yJkyjg41OGxZBY0TKvBvtbU2MuizBhtagVa61dCl+C+iRrjwGgQJzA9A8ofIiChvjasXMZryUOoa/zUTGKmB0GgtQQyzvPE7esZNnMeIdFZedwRbIlOsPsmWJak91TVm+ECxyDR8FOX8KNfZ3/8j1F81M6WF+3n9WmMIXpqvAuH6/UMPy7Eic1xxDTF7hbbrpffqyTmM/LEZX+uj0oGLQAqYkA4/6jdgVlHHsoKXVuw+GzBii3d+dXDzVkFxkPLuEbeuwml3ZVHEhCutcxoSMpLvmXgVMsWM9DuF8hDIHlqkLyVjElQpCCRtWqcxP689GWrF4fq3pR5liCDEUT3/5h+e5z/bU2l39iG+2mzVfFMWWe+KinuMQ3bvB4nrWUuHmviZGS3XR6V6P/JrFR+g5PeiakNHmcflnu2oWfH1O5dn85Q9yalVMmL1EB6/+KWDWL7cwTI/RyUYnqsEqRFqZOcM/f3rEK6MYqwWfP6QZaR+5pu8fdpBYxubFYzcULdH6wxwsU5Ub0C+HHRF+MnL3AyVTwRaLs0iYe0PkSzNOsqA569w5peJHZ999pyue6sIDorU10t1pRPFKmBxqAnK2hLRox+JfSACxtho9/qJxkXNfiMwf0QlPyEwvIDwejWxruIGRtJJHf7Kb/bBUtnImxpnx5ia4dalRVZw8Z76b/eEtUdgBalpz+tLOH1aCjAlGVQctwQP8RCzKttSJLVZ3IJ+KmnnwV83T2zy1TY4hIG04z3X9wmBgOnU0HidVFaYGlPbuqc7s0P8G3HyzcskMkmBb9iLET9PafMPNUPToleY9PRfCWIx/0KSlItwabOXtdQrlxU6SLCTTyZnecAkw+chi+DA5iiReNpdIo0jQ2GeJunr6pIUuTz881Akw7SgTb9LUCbM78NdrXIVSCgAbeKqpVbH0ngJC7+XNZDf4l2rJHJV53idJFCSqBTizo3kFvJ727+c3bFa1NDAmnEPRJcd6zrs7PNdar4zE/klxXVLDMuuhufp82vvttzFGqEhXZlJDDbj68X774JYVeRgjuK4txC1aovLog1kU8o2i1htgrRjxRqv5w6Cc2PycioxJyDRVC1hi1fiOaWQolEX82PlfbaMrPhkzniP3JT1gS/xThzCYLbs/DHuF0K8b9E7vZP9YKWzwVp37yrJ/XjoDWZre9UCJDnL/NXjm/NatLnHJxXwnpKV0Ht3M86QMHV3h0odNMMkThpNFRLQRoBwAd8KwEEPPobWm13Z/Rnd5t/8+/P99Esf/9u1eAqiq7i5WgL6W9c2Dwp/Tp7gYvm/D6norJJc2Fl/dTCoJ3e9fX8PKeir3Z5r6ff7/Jx2mLPyPQsLtLnit215+8ttt7VaZ+RvFjdxN59g2ZrZonhi4bbchmznlmSN1b/XM74vNp8hkNq8pkbDJ6Mgnrb/Pmr40/0py4UHdIUnSgInCQsxDpBbWwXWfubcQnQG01YxiMtGzI2uO0u+1XP9kvTKQcuXXJoxugpWU1n+dvl1z/+1ZlVo3d++kTadB27xf3B5PdKatlv9vuFVOjrX2IWVtG0qKOxzYJ5RVKBid2tr9ewcv8YzPPr6r4WoiazMqZgleCPlCLCP2RRD7P0dblVD3bZurOUqXcbVVKVpryXqTClW0lO6PYnjW3S2mepTG9NX+W2VzioKpYVW+2EcXcAfpdlNhMbbSzRpOavcqfvZPLRfEzmHrDrtziOiqoUDExJqMlYZdI1VF5A/5UlLaYNUv6SgVEi9+BSpXLwUzjmNeK1h2zMBvfsC6iRKrMaCrRFlrNqHTcZu35b1YqV7FkL9kxowFQRaNQRUEBoQsUw91TBUYwVNgH37LxERal6WP/tnGZjCEZ61I18qWRld4S1OEtMIdPPO7iYR7KWkDsP7U4ccVYGuC+PUmYkH0OSIsG4P0x5FZVnCkok7iVzMRoeX/3H8dYmAq3CEp4FsUNKgKRVj7fJsLY5112OXz0BrSaRP1UmYK5pGFz6zFcV629n/NC0ftkqJdYm2KflHcDah7YFgLPkX1L/geUq9AvSqAddsu7AtfYSCBEgWUiTFj891ALUp5PIzgESk59A2XSoVniBeSYthzcDxcpc/jAdW5d8xK1vQjDO7ibqasiiDxCTG7FwVsicUUhjEQPxLMTnQ5cEQthOL9iI1NlhI1TsEIDdCPH18EjmWgDLIf3tQTqz/w28tWQrAjHORSouyicIgwexL+NBAVdolZ6v74Ym5FoVoB+rOyqzA7ocnh/mU4nX1ihLAZvV+Lx9pEdGKH9DIg9raWDlVeFUW/6PURMP7+hm9XYo6rko+JYUd4w9mo5YnT0nj+cf5WZiCwHdRK0ibqFQy1F6rNhyiqq9sTPh6VagYEgoqG1OeZ2y+LVRxKYFpzbQrwYkbIgY2yRIFKoONEdX87aI5sqoc4jY/SAz0Ii/gUemSef+68PxL91Kb//eZ1O0+GyPShWuMFUj6YuTJkIEVQ6WQ8m9aZ70RJZQ4gGh4TJ+Mp5Ik4Huf8qFNHFJARnadQeub2sxPH53c8yRKX800C0aJ/7DX5XcVOCOjBVpT77pdBitHsLAPJ0doq+n5Qeh8m9SmqGwvzE9tNKa7w9qAytMVMrNKpcF8m0Oh80p3pVmqJn/82MbT+p6lxtVqfbCMuVRK6qzrS1mt8MM5HoEWeLzyy788Xs0Q5B9tNXFaOvnU7Lh+To0e2n3dty2vvbqLO3JgA6CTHq/XSY3m8i16q0bW6iRGl7Px1e1wFm1QQefwZOvJ8OSjOwaquf8Q376eBfT2vWwdJmjhqWan2+VJtM6Enup9NX3x2YB2+mOzh93azOYB1y+fzX9ew7VpnmfBKacEgI0456ta7KiYW5RaLYfkCfW4YHLeEQCUdy2XxRoHIbOSY6+2TmYl+9SXj8y+aL/l4Ls52MFCWhvssJDAROHUCSCfFdb7ZKDBvYGJX9ilhcNZLOqlJa2ERRooqfcA7ObvBkOrNgnSMVC8O+llovvPanCtidZgxzhTzpWLGOX/4abZAR4m1QjQHwz4l6JAYJfiyxuM9jbPpD4h6JRmlzpiS4lHpRfW0WXMAT09jiF/vpx/962y3L6X/tpx/BcEfV21i95GH9I66k13i54lBFa2YfxXt5lNaJB/jj5XW6TO+naR+R+JOw5HKoIttRLNPYul/rMqudl92sZiVEtf5TOaB+lX04/fg8bb6+n5br4fX1tMaaJz02KZ5tVY7hAqbdy+bLafmuyItFKQU93UgrVzRwY11g9xdTa69vI5wrkrxyD7+LoV/X/yGXQ4kKlZAMbel384C0sW+gHaUCBKI4ypECI4vvjZI/dc8qJn8B5BiJfGNjXt68XuP/k/9Jwi/30w+36YM9X8kGQdn1LCq0kRdajqoCbyz3dpr2Dz4+TZ6zUn4InG5EU0qCrFFZKOyBnf30Y7u/7v1ErpNgYAd6rKo+8sU17mnGhnB0pYYDNoAbuluIzdWE4zRA8wKtiOLu45+PDlgWFw5GGhOFjIiJHBJhcYyD1VoQXCGbj07pcCInNnNT8duKzdzwV5ItpOCmi0zkUE9wiAA3KKRrD3Lvpx8OvqI0YptGtrPoPTI1XPbTj/UfR+CrEorDrRJiRHOWOM/v6x+F53JVy2AfLJbCFeQf1d/m01nRaVWdbHJUYA2vSvFych+Ul5vVNlEXdrcLxwQ7E84fEEu6r5N8khh2A1ek+yjJDOk+StfZwHTP4HbsQPKrCF0TWyekUmKBUqpQ84OKccdx2C3i4vkZaWCA91HUVFSHl6sHFUumQTwKlDTaknNZo7z7eTroPGI0a71iGE1QiiNABo23oGpOAFXWtf1z2x4zCHjJaoxMugCnc34G5yJ1eGLcWS0JHSPx6wgfPmJ8YORHhc1Cxdzo/X3/slVImdqcIkHNi9pnZAIobaTafp7O15MfKXRm4cJde8KSXxKtzLfSsNUZIvbFaClGRpMbca9qVK3s+lTtGLrgT4Rhc5AGMDI0Zt0Pkr3gT+B3glHPsuYkFTrcNQ57EUyT/ChG0sKjNsYgKYY5xtxndNdon47H+fD6Ok+vu+1Bn5S10Brm7bqLeX4AiHVi8fU6USbtu11ABvuy8u9ab/TwipIXcT2v5TN9Fa2Q7/nEMZ6iDLOb+ALn8/SuZ1NFJACKuaqKhbstO86I/EoqSLGO1ide6O0SFIK5tSeKEmXeh6n5z+usug9lJ+uMg6vBDYjGQOpe1Zl92v18mdYsRS4z2OV9ODbnkIeWRRXMXqCtMRKJQHJUuJPU4Thfviw+iGgw1Wx1c9qnFyRGipLGESGzhJji/WJUENg8x5Q7STTD5mm7UYOPIipGURokm85jdc5hUZS3QomGx2MLfvMRM1AF6aUyCf73mhfFpOJK8KJkJ8zbzWk5z5vFJyWpmtJul/DAjwkDRiU6SQUZ7AcxtJjaD7xOldeY81Eoctrt8f32/YvfJmrNACNZrdru1lJ1cHX2QJjbYSDOFNyzIAAl0zffb2dTKO63h+1edZh6E4ddAR2cEuy72fQrDpXUnO1J59JHSjruUCMdadWGe5a6MKWtlbbfHq4+GUJV2wNgKWd/M6TOZHMUiiyRkSl4EYykLvx868X47QazccpeExly2XV68H4a64RdjdqcukYpEXzU1ApKKSTu177hPU//7bKcVhzALkzYO5NxKSWgvV8USqE1j0XkKR3rQCKKsS9/eVXvfjAhnKTXStFh7ZfX7dtfKgr5mRmx/fJ63Wm0ul0/YFrHGc6gUBZf57BcloMPjl3Dc/OY4X63s5/FT6JMECq0QED6Ay5nwQMdjB+nBqf2GorUjdbqsdhJBA9ZcdKiRgrKznx0A2sqCG7JVJ+YxdqrMKWyB/N4HP/jh/DlqnAHZskhtf2uyheO9vxiXhnmurts/b08msNhrAnYQ/o3gxvFYFG19jSqFAVl2dP2Qc7+y+WiACGD1zCsI0dqZl/OLWEpiMu+NCOkJ5GpM6ovuxcILXnn8rN/drHHnW7X/JQPVaSjJqMuKh3u27cVQwVZPqqwmghfkIeFTL2uexdS9grgOiqtUTUZFOzTOoyxYlxE5dygCkZdV5MG++P7Ypw2bHawqpTQtNhfL5MWKS5MLFRDIodEPfRu8oas/u08X163e9WSLkeb5SQPPHK9BMJrTWfPXucUec119DRMkXCSeA2dPSai+h1mZu/4UIgwjlqb1KhYYc97l7jnxOu7/VMZPgzSo+ADhAqW22+9277gLiF1Cb7SsgPiZcSLLtBOgIBUVcV6+2RblSpGVCLCt0c2uYiUfFzcHUAOgqK0yLr1tHRR0YSYcwpaCHSxm0lBHg4LKvrydDx0mPYao2OyLTD7e9DzxA0e4iWJZ5Po/92SBC9Td1pNMNRjoYrCHv93Lvx0Wr5rB9OZlQ9Bb0liyspOiA6zcpJ1+3ySL3V0WYtoX2yXW/qWT5I6W6anX417L7Ux4wgKimBrU3SamjRi0jWx8ef36RIQe5tjz5ypkRRGalbGWGe5bCddTbGxlYmAC7YUqbFJ5oxaBsY9BGUTXCP8kqhnC1kFlsNaHC596rk+rnGz7I+n+az7/62YliUjUuV2JPiPJO3RwAvMi555Ff85X14jFE2SRQIFHyEkjpZaZJYvuaAiNDDndBpRrU98eHer+hHaBWN3Lw3IBMnPq/eCOKRqIqJy9DQO8/byxUd0j6XZVAH5owtwyYcW07EU3I8YqWQZMFCDi19fQJLR27SV7kMIh11HLNZgTCs2X9rYWm+H+Xo5+YXi0pwv0hwUIatEfIlv6l08o/EtSeIYtqMf75+hGGtFQuAz1mqOSMn9BMMiGcuEylNiK373s3qTuAJcsKxKPJ62EJhBfaylL8Ddg6lFMEjyTIVCcY/TqScTKoZge9TgBmDp5EQ8ZvAwIT1yRNCedDjMPxTjjCmxox+E4H98XDgU77x3H5kl/ZuYKczhMJ9bskjuKqqwJfdXci/9uJzUjGJRS7CwLuQ/PxfeVF/Vpnh6hC1RK+/bww/fjll1SwYQi5rDeLZFqJlnwprCkTiKIgbFHCHa7M4nSiD6fD4CrBPyEjwROxa7lkqFEWQV9yAxVrExvnxRX/zXcPAvd9JAApIE5wHZ7JFFCnHYCKAnAtkRUD+Bk2U7n6ed4hHJkFy1g5jl8/L6l8p/zJ330fxHd7E6U0QIG4YE848d7ABUFPF0RaTWbaSY8AFQWhqchdE0vFMBAXVD6O4YACh0xMwQlWZKUGdQmlMw3aGjnRayDIjFbr9YbSRilM+eFBvcZBEphKjIVwQ1BqoLQQaMjczueIWjTkomIAzAtUhUKofdcEwCqdqwfk9uY4w+dLjSDq2KjqQh+Ay7htucXVukRV1ydyr5PnvrMyqW3fqEL3+df/tDA82syhQYUISIXrKpWRU2Y9G6tJIJ7MU866cBDqJuMtOnZb9dFdZ84pHeLO9kTTwf/KyptMWQ9SlXB/q+kY/cXYLAW4hgCTiliOysVHIPjwlxEERQGwLFqb844xlo/2g+Ux6pQvQrRMXwuxXdVSHyk7qWw3W32yxXf168HyXbFTZqG2ltJczejUmYXyXFnqCRwupqvtlvWz/LGKpRmsYV17lXrFJnK2cJU+cneXIqJ15Oe/2F9aaYWAXNa8ybtQi/Bfl0uJNTrAaHxW8YmmSMyD0ZoJFXCicdPh33veAwwmQWjw73hHD669Zj7daKaN06gxT+dgYxNtKWKLRgGAsNS9endGshtAWkM9bLxA/dy8RRwboeGbvcn7DMEwIjygJZlagD4mHzPCiRCZbIfjn8W6PRInXAwzibwh4CrE5iNoBBhTb435RZ4t/msB8+Vx3HnosrDmOP0um3scwh1UIWYgF4W5RMih4dZFUTjY1IiyOqP87mGsv2WEO0QsjXRr4gXFVEf1xkNlH9cUITA7CyrILgSlkPGbBzBn76OHrFhCKydWRU5JMz2vL8FWnLMxuDF+HgVSlGCdjno0QKQmZO5JC1UAg6oPoVVTEHyx2Z7+DsGrSmGhIG0t8xf2PWVjLY5TwA/mvSkb98P20DZEFVFHJ4sMAzJgEu5A6rDlSyz45L1T2pbE6YLFDeYblotg6bVUHHhkwbR/hwVzfG9o5FgsIFkRYUWz7uCjjERuJEfGBwmxLzwCgSY6ec+RPEXShi29iIw3LZvm03QfshIUHqHhKITXA8dm6bYs+B+UwM6/FpjZTapsgs4BLis2M8TJI2oCASQ33y7jSFnAlkchcl2T2RKTMCsuGTB7+8WJU2IDY4vKL2tLaU3f39v9L+vu681oeJXKmQebmvywUUyMWQ6WNlkpuCUAelxwZpms7XRDwkBgEaRkHIj+G9+DmzTtji74kUD9XGDkQMZD8Ff49IBTt+zuLEjp3TeCtRVxA7nfFvo46Cp27EZXCmVA8QxZyHd7p0OCW7gScJgWq2V77udp+3l/10DCDug5x7xxZxL+P5AXLd7ZQ9OaA/qttWOZhbDsX/FpgDUTXu+MTsj/+6/6x4sDpzzgqaGoPDAI6ItksCK0TMBPgT6TaAuKzxZ4isV6Bz+kp/WxlnztPb/LIiWzVJdW8qkqZIAe6WfUojU2eTOmQhrazoMbIbhyJpFuns8vkPJZfYmyjrCoQB7i0gzWga1I8dZxe9RMHsgOk6sgiIp/b49mRHEX/W0HeHUNMBucgAmnRi7wcwpjWtedQvn8/z6VsYzdkk3kgbXcCYMKsDiMqmQ00N99ytaSp6U405w9TJD2ueDvVz/JpqWoni2/J5Je70HE9nUsWzzgJ6pdDgm3fvEsBeY2O0EWlKanPC7zOtxm7UlRXRD3Y1kkizD1x2aPZhoB0YFLRK3GeMciqbfQ5lyrKHa544g+TEQ7WDrNoasiH4borw5GfIWQK5WqJ1UtLTouuNDM7jPce/oHQjfDMlTgX3G3Lmugj2UrQzGa1hiJ44vEqsbyn8C6sP7KLH6hAE4JLElNWHSM2BTMLIt6PgXUadsY4oMRPkI47FPLHaBLEVKB7Ho59YbQLRD/ZBPDbiOYv/Gp64Hl89awmYletQN0DaItjsI4Q+osgPVsdAT9McD1C0QF4cINE1seoDYzzEC8kIUMQVgs1eIaR8vqUqUptAvaJrecCwNoEx2o4RJf6M3P54Bp2N9lje3vwoROISC0a2MSZBeEbS//KbHHQ33lj937/7GottZdLZJIoZy9ubiintOe2YipIZA94MKxTdYFbs2TRKAQeXt7ezr+Rpa3roXpzMwmwq1vsKarDTRGE6Pxu1tH31pzZLE/NsPld5VPEUSuxJNelRSupIeo8uQqMXNbdTSOHC7A9rJh/D3OyPfDW2rGVQCgo5bkUUlWC0jV7JfnvRCM/aVigD4RLOvpH1WFuexY9aa2/urgzfAObcUDYIYFRsZ7E84H7gkEX0pSGZYHgN+4IoKaYG6Iiw0lAriOYBC9k5B4hsBcEEJHXQMRalPLaOKfNQMBJzuywmncyYTPSpANvk0J6YXR4QORHnxZ4UEYsC2Q1QeS6KEYXIZxT3mR2miGo2JfQiTd1nmDPGZJjk7tG16zGxL9kcUavAexvFDABn/MknRtgQYhkOKcbopNj5ENFKiEMjhIBF2xqF3FhvQ0ANKBBC8U2BV+OYYRhdiB4I2IVED8SmZFgO07dpuwtGKj1JtB49oyoTErAoKqTansjFHnBNshQC02VMzRg4gYhQCD9UbC9KhmB0TzR7k2IyEvGS3riZEMkYU1tB4LjYfJyfZUDLbUPKPyrM2EfN4fV6uo27+mOYKwRecosxYg8HyeN2/RdukqLc/8R9i5FEHs0TuDYwVQWnDEETaKUEEwBVeACZg9s8kgCjoIQisBJuf6Ji5rAEkW0ZAVoFZ5P7O9hMBES4CmAIiIiSbsbPHHQFQr40eQ7B38YzffwZ+d4BoYmeTawuIVeOzVnUHFDnxIU4VZLj6wQrkWqfp4+e/vaqldFzKPbpfrSXJPsNPJEAsBT5MzvwBLJGHUAEjAqPH+UNZqVc97W8fnpAfWqeKpyaQ6bKzneixHeYTycfH1bWnSePSUyBwnDn+By/8v50UCjSAqvtWellHUU6aKkq4SY78jO4/TUKKoRYTC36q3ah9fA2bXfLt/l0mlV+WVaSGFy0oyPt5TGyPv9FEf5TbtaIkchVKvSd2T9x/hJeCtPMjGSw5ZRHBhyRHtkhZ4hn45igOaohJjQcsI3Qd/xwfxnOGqwB7vMVtB0aDkcFSiRozlWyCuw+M3gVNnli04PCoWOLCXlKpg6QVaGj/jWFq18I/+meUUIVoLOYpCbCgB53/iRNSDFkeLwlESAV/yuKcgWmAUShk7AolBlloROlUZE6ROYMMPchIFWcOBCuPRNwJWYP3OfDqIcQUc4Z8OvisSBa3XoC1T8CgH1PwKeWw3I6fpkOd7EN7TKrXra7BZrkmXM/npb3deJaHR4eBW5IL/bM6mnerJ71r5VGVcstVr0k2BUKwblG43qJVe8VW8qIY7bMno/LQQkZ1cLRfmrF/sm92PN8eJ1PkXO5l3T8EcFfv2EKXIQtZ7kcpz+vipNAPmHidh12T52WziMOVFNghm3jdJajz98zmhAoJptA2MBnRbNB+p20f0oPBTcsDtjF0+OsVRLH0axPkiSOwLEESdxqXDM+mmwRwaxZZMQMBy5nzXDgBkeniyHFjBgTQfhpzoglJ8M8T8zZL3pdFC/ENBZ8IzwIJ6qCqSjrAfq+o7A5hqFiUJbw1IkZLWO9U0jt1JrIg2SP5W5LsTCY+m7MsmubxBE2tTqdORNBPiu8jSZRt3D2L38dFdGnRD91BETD1hN/eDPsu8JqsIerEvJ8y/G4nLca3WvTAieAkMtRv5+yNUmMQrCBAAnEBHBibV0xGmvPp94vS/E/1Kb4I9k63KfXum8Lk6PeOCc/X3ZN8KmSHxEhS0LM836pir/EllRACYedB7B6jGFM+mG4kmDIlVOr/LNwHo3+KjbA3OHkT5V37w/hf//7d18TuPoprvvleFHBmEmW2oqpWTs88OMPk8VP877irGBrivOJODLciYF0A+cwQiaMJNg9KpflAdBUuwgAgPkUisi9fiD+GpdACMkefXQKWgFXRqR2T0A0gOOVpXBdE6esD6KcsGfmHh0Uf5jPslKJxBYzXC6fRcnSncFsp2FsHGqgDqwRtpOBCiWPjbMzuvclYFJuVCEYExvdAx8Rf8WBUyHdAiMQ8A9KaJQYJkMdI0I/LIqoaOtVKBvKATOWTvln+HssoiIG+pvGyn4pw1fovtsvxGjwjWkQVyeiuvC06inhRp2Inxg1I+wL/yI9aiZKwJlDZxggjI6fxQDu2SNpWDc2nBYBwucPrOH8io6uhSB6CRnDn4nBNlgRg234Mw1fVqVxVmE4psYyKorkMc0wUY/BfxWUImSA4GAbf8VK7QoI+z9SrrkkuI3ikqQAFSQkEd4HBDeiSUwGCAQ3ICv6wBgd2sqxgboYuI160IIIDFYoJiigb7ASGcZr2GRg8hmFw7HCFCNdYcNaZWCMcsgFS2BcPLZ4VQB/k6P+sQ0RY7nwrHEerXUbpYWnFG0z+L2GiqcUdXRerGKQkdDMuF21hoSbBO5VYbNF3CwpAorOZGvKkhBdTq/bw+SLhY2myEBivunJoFJy7Cg1kBO/6O37VhFnmBlZGJMJBJwOmJwXiq+61kP92o2N2itYxhwYgCY2yWr8vFkVBC/rQMJOUf73TemVG90bfZIIKxkOM7ZPUSIsmkixLJ6NojKsYBgVZ6MiHhuHXHT2L4K4FsdsBFMtjsoYapr5adgGkP1VhSw2n893rU1fmWyOaFIR1hJl1orQTLFCmyCcWq4+ANKcXaLUZsA9Afie6J89HmPHoBohgJgUYCCbORUgghAEF2ziiBYKWW0HOzm+XgIdusFOaIEvwhA4NiTrKYwaUhic28I+S7A9OAuwywNaYVjcLD4NekLhqNZ5JjdXNUaiskTF63p5X8Ki5M8IYa2mFFvhCkr4OUs7RYVcmWBaQCaYzOGQb23OqGWlQT18PftP3HyHpPJL1Puvl/PWp3+rSptfsWQ8lIiC1FBY35s0moF2BcoaYMoRFQbMOzlYrYkL/+U0NZWcxoQsmHSKch1Z/BFIiKCf0yGxQluiCfBtPr3t/E3bmC4kxJCHiHFrld10VDAQM4ahlFUCu7FiS9RmKytT8YvlJxSSOniHzg4GHquoIqzZaCB8g7gWt79YF+CvWC4eyaJJHSRwLRxd6hD6doN/T7eDHvfJw//pc9WdtdaUD6HnHRO9n1V3/MuyqDmQ3rSamlheja1cJ8rRmCTOyZmS72oQ1vIugGgH0wCxMqgrRBLpDxClnkcZIjQIguyYrqUP9o+nPF7679YPpITeOMMKYnLDoTVB1DWoLNh4jH7O15u6nRV4W4CnbyAZ0tq8/esSalS/NpNBALXk2CbzWDsaWBf5lxpWGs0psGAo1LR5/rI9+hvN8rHYaNwEsZtgThRbUAc0pn6O2wRsSCCOrWziwOW735YaGpMwD76utSXH/CdTNT/DpHycNl91LNybAopDWK5NEVeuxtX+NnNh9ltY7AeGjFVnfIeN/VUdp9fAERdPWcQrW9rjqJ9QaSpVJiboInoFAmkm9MjtscPjtPW/5cEckRxZt7O5g47TadrPF99BdGb+ID4teNVEOA7rity1MM/EUF6xfCBFDPuzjzgbzPfCZktrR3XH6bS9+FUu83REPRZNNzS5BE4TOaOoL7Pim0DWHaeT+nSq0jwb/qk427owRQVv8qdIv2sX6o7T6Ty/BKi0qig8wBjCfMZtLSKzrsgrdd3W0qozlmughMs4mHmCucqf348rv/Bmt50Pl81yeNv6Z8sg57QFkj7jBhT8yBaOzSI3WU3qg6+p7cMkyuFiQiGMFX2gaDM+KxwwWbMMbpWKdWPWH38Ct5dA6x0nH0o62oe6CxMJBQhPC3u2le3V1Dz+ejlqh9uEMFQMic/ExGqsH56JqcJmVqJOert+LddudnBsHNVq5/tyUi5U8h2XJRq0A5rFA5CTmTWno5J8bezKVQBRad2Zz8mlGDxgxDjjaMPw1ut4nafXnYIg1x6RJb7TR9Unw99cNl+u28Ol7NSTFFOiCH0zsdgwWle+UTFhA7BAlQlvhtHBtykwghyViCCbDZu+7LCtRtNkjjnLpkLiZV6+3FbxzllTrrFkQzahv7ka9aemTO2ViuCOMuFprvoo6uxRoGQA8NdumbwvtZNbAfIGoE0pR6AORijD+6t9eiQTetSHOG6B8SGRIt5TyambCBKnJREv8nxRLSBti6CBQdSHalOHalPXJxzi7ekEXIKd4MD4RHXIumcQlxsT3RbYzYd3tdubSg4cODwdSKHBsAupVEgm9u4JQMJ0AFZmAKJlRMA54tMcHR6zqoAAQG5YYQS1qptMBzar7MZk+giym7i5veK6MYPf1KExH3SG2gzm1w01B8wohwDEHHISOSAbQWrFOPA/SGfyuK9gr5adyPs/DRyCyD0w7nYfA+w3tmaVU4o5j08dSnlFmXl23O2f5uNu+iu8+lYO3nQEe0S4U55afzsFOrytHL/pyAhQZn6/D/PLd/3MB/nMASTKPU8Vq6CdEQRxTYimDelwBbUDUDco9oKgVFM7dODSi5R/C9GgDWkfYpFVFOIYYcaVBBARUD2nvgU/O5sxnPAmNJpwMnwLumC8/qJQbA7Fw3E+va3qGIqDY0WbPSkN3vK1hNOD3d/+/fvOZ/uyS7LJuuPdpGJ9NoHgDgNimNouXvTQmEKy2KsNGXcIPRzsgOy2xnbjRzuDHG9skZ76gUhY4EvUoI/z+pjnw8UHcHXmDVUoKgIMmJouWe1v/bny0RQn4qeV6mEc59N56+dAazhjx4GJU/FmadbbtxvMODUBSII179I6u8GSkEjCPBqgNWWDBrT4hHhaJlXEEoOTK8DrsngxxqrI+awen6zCf5kU6qiz8umMeb/R3TdH+D4+rhdI4t3qaYChtvYW+fLXebvxKz2tnRcF0jr4SHqoxcTUXaBdUxWJKp/uMVSD1A4DErQewtIe4V38e6VoqdgufnvQLUMT4YJOIZEd1EzFqIMY0Lf7vcftcV4rC76/rs3PPOn6d5P/gQ8mH2HQBvuf55a/rOx+fpekLUxhcQQFqT4DzfqwH1NewXmLRM67U4zKZW8WjhjrAIAvooUmkWbsput5qxm+RrNnlOnwH1Z9KczSJvr6b3YndrNydlVl96GTW+mqJt7Mp4bzYhAjBBG2W8SBCTjfcdkq2pm2s9aFGAH3BzURxfgLWeXFuAp+YdAEgyFOMdHfZYXtktZrVj7JjAkF8xZgDILeyT4X10VU89ykIKcSGqcD4eRs1NJx2Z7V6G1nEo32BHA19qdys7hfHedm2t2mmL9vD6/L971K1USAHoXkP0nVlt124yP+Zd1Tw8QSDHqJceIoI3SatK5X3b/0iPFx8TVWysos1YQMPqWgmo5wrDzIv6xl/bcxmFjJkUMuCa+7LH4napDETQQc9fwVyRwAx+XQKqheTF47ArJdOsvCGnJxGfEI7boQMEUGNoHDRgGOSPjGhqGuz8J3Da1JEBhGa1C2J0+si984th1AB0N+Jo6oAuAU1fSDMqBgL8WXECEUivO4xSiDCC4jnU8USEZ6CgyS2bCr9enqzm1noiuSGf6y7FRsZ6Xi7rLxTspSDMEGyH0nOhxf9XhUvcrCBKc11HfoEg73GITlNj1Hrsnrbjqph/NTWKubJXVUroN4dtGD3ekEJa4jmo2vqVrtpYha14ABYy/4IAZQ0j9cjtmR53+Prqs5bGy5tULwwSXOh/M24MYYPUZBtw2pRocN2cPV9ZGxKAkWFENGMTGHiEhDRHwhFB5I3ZLi1TBHUe5/gqSl50Q6rmUU7F+JD8+tqwYFC3tCDidtlwB23Oz6ExhlYwbg7EeMYEcsEp2w5RxkM1VjFjPi48/YvMFArbGk3903qZI4K4wcW0w+4c9q1B2H1I1+1xpVpldPlsBOahbGBM+ipgPqAo74Jr7I07yZX8N6nT35V9ga83djynnbpS+K9zaJsu1p3mzPs05VzQHHPK3Cu1XliewaJXjGHqYRQo1sOyPz5SRklHT671E8HHhwKESONw7+UCRJPoLP24vCFMgJVLfZO+eocDl4CGULUtCRbV5ERDV295MU6DS/Tmq0obOF3RLz08fTrIRIehOdloeTuBkMvpJiMMswJYK/Agl4l/xyHguorLKzHC8YWhwlgW1WK6eU5sPg1LzztuH4POn8xKQ80NCxmfkE2d96gdsf/pt6+hG6oRNkC8wgETWIj5D04mOkuIO5j86WpLtf5b/0BI/ZhkhM8NxNaSkbk9oKbDmOzsGwueKo35bTmgOc5qCA1nqYOZejsdvETKoDKvHpt7oirXWYbsbB8EhOhdwwep517ay19mrnXCWpaAQRIcMSjtSBaqMkaMee9LhdzckPhDpz/K0C8qJOYFwfJv23b8sGUstEoMNskeHUkn7V2w6BKLGAD0M4MJv8Yl3nfFXBSlUkTumUqYC5u+nMQj01Qmz56NXkdvHLwb05nkupT3fedxFpLR7uiek/t/B8eA3rws0gyQ9d2kF+oZH0eV32Z3lbzo+WRrP1DDiSwxUZRr9Pus9fNGbKy4pil6h7nLb76bT1L3QwP/a82Y+bTT8bkv28skAnguR9LZXa8BV5w0DOozjgFlhTOxyIqLTCj1ZIVVtkC8A0lT3JpEltRMIgqpd1z+719/NlOrxOO6XgUVY2Y447GAUqH8xDCT79x4IvmxtG159bkynn+pSBgsFc9LNte7d9NQRtxtHTHkOi2YI9gk/q6Ur+iEpvVpYys5PtNx2ztrbXS+EJT8tG8WWP9igURiV/rTEXIe5Ijux3pHJOpazL69WPlEt7TJL5KlmQGyp9az2LxIJ+ul1VP3f23E0pTLRZoAgFMBNWVfxoc/Qkz9nVlIL/2OXHvG7w3aZWRm7NAPfJPg6I34fRnKdx0UzIwxmReHBHPXo4bBmVXcGjLCQuREMuKvWE6Yxo4wkknckW1GnZK2agtVFgpocoAbPCJGj4QIkw4BwZevXpGZpkTSoWXPmSL1u1ERtz8v/Je16N+adtb5b+82BOp+WybPzW2yg1W8A9Wg4AWNYowsVGO9FkQo2io2ZHZNqTDKHkCnoyWCWa85mck4JfEpafcEmyGATLkUGtuDQwCqdgdxwFJhxnf6SQRCbgQJDuyezr403+fp7PQZnN2CKpb+tm7GWl0tBeqvZGTIeo3kGqoQPb22UXqsMXhRd5UHspsulS5v2qjsyLPoF1sXXeigoekP+qSvYEIoD7dd+Gu1XuBvJNph6FVrSvTHbwJ4foN8VP05kxUUUUH9s7yfe12vYvs7bZ+8W3C2SkbCUEQ6/JVsJ9cSVxbNJx50jxiqgnHeF801w8VWWjfsVd08PAcwxCYCxRHl5++M69LG0C9mBwThC0pNBt18+77dmbWBpN3BFDhDJ21NvhzX0Rf890tS+xjZSiinxdQGjX7mlGxndcvABMDrVpxaADYmqEK5iQiHMvw3sLJuUIG7IYZaDouqDap0e3P1v3nM7zn1dd6x4kUB6PAVTi4i5wnY4R+LmTfCzs16hsdQznJ8NhqrIa+QjDQanUBML9GgI8sLkbWyEIhWZ6ok18PX+JVf/qXu5DxKtVpsyQNPttO3/3n2AlTaM0kUkperz6baHO1K/h1B0VzwBBSsIB/rp88Q/c0cS8Aasi5NiKYFliVgTCTSB8uucX9efr55dI1GLzxWDEwD4R/3z9vL6j7WaeNpvlqjS2CjtPSOiz/3mddBfB+mJAw5Oi3DHkryob7JVoK9OY4kO2ZR4TUyXC2vY0by6LX+SrKqkiUzagtyszJ+SF/WBcXF4xC/Ki5P7M9HwKEi4RU7YArA0xTAvqswkkyLqE/zyk/jMRnEKXgL2KyOQ1iLFcrALPAS9LvUJnCJUk/EDlicRP7geiBWQ6RDrDlbof/GTdD1edp9oLRmgdMR0HEt3USKg+7fA2oZqmmFV0M9DQsQBXphs9B+5F5pMROB29JGGcFZnIqTMhDjMAHEm7CzCvEJeP6VEIcCQZ9fD3AAsFkCA6SIlJoZi+qDcqSSAs2m2ETrIDi1FJOVJJbkagpglKFiz7yE85cAQ+b5mppr8Uv43b2Mw7re4zk8dSEHvkqK3e1l1L9Zd5rzpblU2bQ1XtPuG059NfIfFSOchh6pHE5EVeWHE3+7ab3jXvl3BdI15rM4Z1/k+d+4RZ7hiBnK3s+bD72qc1BvWBW+UgZ7hJ2tBGiKPWyiCROcCxgnYqQdZwX/+y3c/L9fKiUP6S30RDJ5i0m12vm+3wscr2PJ6WeEYRFESK6+62ygoF2E8etKJsvJOHeMMi/yy721VzT42Y/vrEhtcIYIqH23ny6B9P3n/wjSgsRh91bEDYOUZzqTVi9paRRGI8laADIn0pMudY47iC7wuYmTucmVKSh79CTuSxSd3F+fL62U/U7Fq7S5ci6g5uzHDEmRrULtxBHtJaidMxzHTh6csC5xmBGvD+UuqeChMFT1Q2YgFahxdmRILRlRL6uwKaF1OsoK54iQoRdHplZRj4bW6wEtVdBjUc4GJpvx2ZoDBBpT4G6MGokRSr4gnoBzu2rNqixocAmEKwaIVUHd0hauhCIp4KHWiudqAABHtPBfRD1cFhdRSExYhMh/5YoPhx+8V/S0ZFVV++saSTL939WY8Rjt6men98IP6ZP5qgwoTuifggXKEHXwYZ1VHBdQSo4oPANvsFAZWWr/FjUiqPB/Hbn9+Pvz04WPyz1QS/CqrTBK3pw/7vn1cOE79CKs6G2CxCaYulOKMrCeMfipq49GngwjzGMKgkjWsbqY/ZOoSbckLO7Fbc1vBrPKOnIN1GgiW6qAbFLd0QbUBXCvlA0hy4HoJzSAPJMTDZUIutFWmRkjEI35jQ2xI82hxiwwEpunGpwO6qa3xm4zpSrgoNfvdgKH4fiLPVkRDBTdYRLugcNbno3e3ivkPBSffd8ZB3xyj4nqA8GY6/uWfbuH8FPa/GvRTodQktSgzNQeHBvXs2zJ2rAguPs8OzG/Ih4ARzRd3BHcmoW0eUHt3zlQqNONN59sPpFTjFmCXLKICnO1wicmip6Yj/WvLsx+lOpQ7qNwJNJ3JjOFs5PIk/o7ANajMyLAPpAqnbiaKLDB1CIboE61rZYYgR7HIlqWp/RlsxZCkUkAchvhR2DoRmIkJOSYyEX+R8wwktRyaZ48NdCt0+eBQ6UxIosWNB/VyOyqLQjsGbkDrB0wCXOnaEv6DNhiMUXlNWD8QvHLDweB2uOapyB4eArk3V4Ql1qIyQKDjm0n57HKG/Tbvd8n1+/e2ugqZ0OOyByKfqZ9a6ezXUaI5up2Ahf34/lj44ySTuKIuSnjT1RF42y+66P7wE6uFDKwsCqEE1udHAzfT+Bl3eLoeXzcr1rBYQh8qIQLdBqfr5Aq/zZrufdi/76cfLyiCg70AWVMAq2WQCJ+8LvE3X3eVlvsGuXj5f397m08uapr+ct//Ry42yfgMi/kgym7nc9rBdaZtfNqf5VbFSDZ2sQbEdPGZWG8LFbn2u08v28LZYBZqhq+SiSI7QR8lY9B4ev0ybry/f58/nZfN1vrzEsEkr1bBcTTmgrNUet7aZjtPn7U5x15eD6D9+GsW4fl4PTyywn89nrYEwdHJ7I3trizBOf2I9aJsMvXwyGBRqI+PIpunDZlmHCV/el9N2t5uU/Ubah3Mv8z992L8enBfQczlCRuET++qP+DtrkbXYt27j+bS6Gk3cNvTy9QIB3uY2l7jA7jK9nP/af152L6/bG5YzQMLLRhanYtpMfk2uJT6PgO9j6KU/i1BtZC4SfeWShGNEDbDN5NiE7f+cL+o1yyGBESFImwlfWA1/mafX+RRxuLIHP6KK8ZiqyzJ9ox2NfmKD94mh3w7w1AdsP0C7L1+3B/1sZGuVI1Rtlf8hu1Wk+7b83dB5y4WVh5zlHkfScjjMm8vLflFaaRKOLOhxBLHN80X207tPJVmOhey6xmKbHKs/XqbTafrr5XW7nw+3qCRC6jwW3kspGdrme7/IUv5JOpYe9LFk1Jzv/dZFPq8DIy9rTPtyPR7n08vn5ao22Vj5j47Vrnw/uC61mXe788ttjXVRD70yeO88AouPAloSNNJY9B6crraj76rxZmNKphz5LpHL3O/uEk7INP7LItzrI1v6x8v2dT5ctm/b9REGHMqj1x2h3ntb5zvKdZHbXjDuo/VfExxmne8wb5G2PgpD1zy2/iOD/6zz/ee61O0m7Nffes+MvE/Nx7zCnTD79tRu9NP+Ip33/WAE+8F+nL3IejKuCQuiochTkxEv6ZodzXHWUncN7JfX07Q9vNxmPYNzp+qFDu1qPd8RPKy/TdvdegPzDdezU8Z7abzNP1vYGH9ZYXcXK9iSKNb1MXFiLf+rP83uBIs/o3LsvI8lQsCTs8h6F/vp/NW4lXVs2hu+Iwwn/6tf51/n0x2nsE4Qzu8awlUU3qAmyrdtl//he6uEhHpVIRVPSsICH5S3mWvcYpjTojhsitI7klH/aYf8d3F+e/k8bb66UerYLfRCzGydUPzAhb/dI/cg5qp8vo/2A5nyimi5qrng0tuTQJq3EYiIZfYynd5nBZH02j0sO3YfyPeux/fT9PqQKQs9TuEHIci1uw/kLm4JV5wIeJurovLCAfY/PxDgxsZgispzOOyhVvlf6c3932MNFsV28zflPYvKe8Vs0lb5r/i+1PbwdCnvjEYZoauyz+hbjPtt2qm+X+ExOgJ/OER4HA3DtxDzsiy7dbeGCCy5mR7GyyiLtNC0TnW6Pm8Pr+f5ooQeV0JYkQSiIdfkJ4Gr4aCy2nu1O4Cqm/ysbzV7e+xKCEwAhfBYsrf+ozQ+XS9fNsvhMv+4qJcqUUJ99ncrzEZHfIrRexqRjKFxtT9z5ie99F1icDlegjSskMlq84HteTd8r8/FDJeCc911Ez9g+G1WGVbZSw2UMRdpCIOPKkHsUitBNvEpG8MIyw80//p612hwE4z5rcyC8tKzj2x/gc+ryvflNB1Dqciy96pvxUdfo14h9DcyAcxPmw3zsZfQyDjwA5mFscRpPl93ig+l9Fb46DNCrT569aXUwWrzr/6vy3y6FfdU5VzCER+OrMqvC69mb0LuSi9VOHOQLlT5BaTNtPky30L6WLm/kUFUC5jaEDmWLPs3N+XPXkiFIlIPRk46YPod/Dy5yGa3nOfXUFLWK6gCPd9mb5a79bdpnSLZ6sNJBmct+vHD8EHr+/ly2m6UbTmj0gKVMOR3w+6218ZedIPX8tpJKpAfd98rTPf+oYL3ykvHKPoHvNjddBhleN0CkDA0Vfbn+ciQt8vhtl/W0rJ/6RIy3rrSfjnm9wwe/dvt4Xi9qIv3Ii+AL6tsJ/AwHQanTe8RQ1GGNftDfTRO7xnx7SOKJJOlpKwvywbIh/y08nW5ft7Ntxg78oRk72AkV0VkxNYyf+81TZuvghoo4hNkFw2zNW0YAq84NnME9M/vx3u0JHISdT9yu5JxIz91u9tfS1PLt5WX8TxfIlxnsilIed8x/7Hdl4kdAf0gNy1q+k2VHVM52xEPJ6tqHZBaY36udrcdzrNJhujYWMxHDE+fp8PrcogcLZLFW8yv1fnhoFhmsyqt7R51gMhSMoUGxLwufuZRhda9cUgMoGWPLHrWo2eNzIc6aLCO+Z2hcIHfonMfZVVaQ615AzfeUubrqGXxJDI+4o01wR3btH9YFjXc2GNsZa2MQwBjfmx9XyQyrdzIjImo1jr/ZPVM/xYfl+lbC79bgY6ksel+9CpGyNfK5KwE3rTObwndV1kvfzPtdmuNda0enBSYx6utYrzTTRt+bJ3Ah5UeByuHgMb8NOeGV5lfb4Ug33QtxUcB7Bzz+xrzj3mzOsXYkSG12T51HP7MD7nnH5fTFPkAKql7tj7obIvuBJ0ul3l/VIyx8mMm0HbMlFIW1iM7UQZMID2p8z/YsHfX1tIJwFmPXfZRcLP5JcxRWzkz1wm17eyz/n1evkwrKUYQ2Y0yC0MzvcnPVB+mw9i3lcQsHdWl85PUB3ZIty6rUrIulSVprPLRj1+mw+v5y/R13s+X6XW6+ACltpEaw6SHHbLP3UcNbNp8tcOU1mMMgfZX3WS/1scqd38SPZgkrrajrnd+XuCWWC8+jHBb2eXvgLIf81GND/uxMLSVpWuOmhW5Q64wfpg2X8On7+GhUPCoIwWPtHUHuYo8HVnx7QGBKPJRFmqJoHHcj15iBthqPnzosUI6vJGsrT3lOPN7+VjlfFwOWgBVtut6oPuLD7+Ie0c3qBx0Mhvo0Y8u8hv4sJ8MbjzAG6gf6vyz2y1zQ7ywh3+DhPp3VHtPDKQ4kXm09FI3LEqkftvJOARjJVWRD8d/QPcemyoA7kkVh08jQE5Nft6xPVy6RtmUxQNgmpr8Gvr2+K2JHZGy4B8h4Hlqd7cc3qu2C00PhexWRBQCck2Hp28nU8ceky1FJv84TX9fTipKHWQFfqRScD5CbTVtlJoGCe0YAYBq8n3mft4vp79O83E3/TUdj/Ph1coWWw9KiBp0nR8Qy7XSbWTvLKgo2NBl70651i1SNNfqCqmFjlnROh+Bc5jfl8t2lUdLF9KGUm5gYMia/IzuMJ8v8ys2hLIuTze015t8XN/d+uG6/zyfYvalx8C51uQj+tZ55keX49YpjOVGnQRECdGlDxiPm62l2T7GYpFQeHrYN7vKK4m+Zz8y6+zmAhP27V7wCpQRC5T5zeDV7h0beAMezqdI8LgSIUjrmeKtEes6qltHB6XlLvvIilmOwCUlLqzJT0hX63fnsKYzu2WNtgLBwa7xnkr/E9bXSPHbWqwMH0xXesY/9MjPl+U0T4fXt+X0fTq9RjdM5118PtBhtX99jfXCq77xNmGEhSZt896n3m2/KnG3VnrgD7STb2bv2LPT/Mcccrn3EuxcVfnooNVyqrFeeQAkp3maY3ltZE6bP6/b02ydtFKFLiQKzl3kNJ+X62kTO/AG72OH+ezXedNc3S2XOwVniCvpZHEHyrVCD/b5Co+xw/DiS++zQS0qH8t671Ms++NuDi58kKXpETrZTT7Km62JWFGxa2SqAH6ZKt9x3ewHSledPJtjgIM8uzH2Mc+B96DYiUEdDNPIlsOcv5MOpccccJWfm/nGwzkuOc1DYaEmPxnnAj++TNc1QAr3pMzJwZPhGBU07vHx0kHjKohaywTRzHolt/MKqW7kOuSHHVHmyrhZf4njCrk9X1ZW5HA1L2YA/1STP0XrjsjVc8cea+sd7qTa/MC7Wxe4H5bJ3GYNeWRnMh/iIZZIpzRVKQ/kssmfPxVLbL7Mm683Ra2Yfe8W8lte0v5yOl1vp13M/uDZzw5YhP2IVcnYWH6gki6svl134UGxxmue5djAW5lgjvKW2K2BQASWVUrwZ/mBXEjZ3i3n2CvtPYLfSFieFCQIl7keVqBvHE1SeQMvTT5WUKwhGIUjC9TeC8mf1hELnOf39b/aX5lUf18hBtkHtwuXbkSPkfq6540gZV5V+RnqvXRoAPO7Vh6zKN9/AOxxNx9OgLbSTYPqr4mUN7Lb12KpdWxOdeA6yUUBtqjyAyBuYT8aRUlgXg8GveqnFtD08b1sAsUeiHheYLcs2wT7brDcb2/rgbT5clq++8FKZXGtjxUKqbYOYLjQmjzvNIRXomHHCoXf5oMb7Y5tVO9Fhv3AqVT5s2DS9HnzZd6rUr5M5wbSsOV3MuUCwZuXsMyKJJYfiTdW6/PhNb5rR3nxoLvNJ025mz8t3/WVDzJ6iW3Kj5l2aBG1Ob1Sc7gfM9cIXd8g4cdjhbp+fhVqHUvcb8/7dd8HR4LHNVSTlr3PP6uX62V7iJUrS8/XxbSpnxpfsapGk8yj2QG3XvmB2co7ENa32Uqbisst3+Zvb7vrefUv3ydF7lI1JrUkKCdKWxqbKzxO4d8eVVEP52XKZVMQqq5SnvK+xu3BW0nBSpHBZyXUd/J7WQKI7G8bGfUO6L7V+XmHsBwbLC4HORg5IictG35exD1nu4kksLocJLxzpKxlk53NC/uu+x0beOs8cTz4ojqfXua+0G55f9fHo8yhR3DmNU126fBuOhpCShDFgInyOh+FfLcd7tNR7lOwneZ3fs6J3HjldJHmQdeYXxQj1iB6MMr29gD65To/mTq/yQHy2Py4pDqqmvza1fnNmh6XAznVB7IlDVhQj1pYBS+q483MNx8esr2sKQ+g9KvzcR03+EM4JuMxkoHB1RF8qnjZnTdULyeJaELH3K0ejo6VRSeXR3rT5Xdvw7H7cpCgVQidONmNLKPb/Xy+TPvj9aC5zyQcZQSBcNNmO+Hr63FtWr2fpn0qD5bd+i7S8LSsHx49qzva5UnJsSzkSdZANryLdECtBe8NnJhp+Woh7NlFSv1iOvnZEq/zZdoqYcpeHvQDytB1fhlarhAWoWXhY4Tfb/LBTg/zDxcd0CuUg4QgjSSBzv+6r9ftawRfIkHQkKyuPlC7We1GvJHs4gxgYKzzY/Jv02l7uETArh4/Orn88+k9IjQTZSuLP1TSHfP5Sh9WzSxl7QHJDzYfE4o2pe6rln3paQhDwyu/j3h3uJFUv5cbDszZjqrY/zazNJDVYhFgWfNLGsvKfviNNl7ch/Q2H910Nx/UdBrvKEH0ne9aYDfmISVJApK5Pn/i6W48UmoZ5I6H4lXVRKYLY6ZP00Z9mKOZsTEci5hR4uKdKW8f67vF7fmCqKbae6y5HDG495Pf3prb+qBw5mnyB5sKU/QWjbGW1Qd34dRPo1Yaed7tzsFpOqggvWhNFVw3MjhQl4ZxAKSnyoFpGlRSbB3e2xWEO77sTSEqiOA5kvTGhZZCBA+aEo8PESUJiku4CajWvSYhMOAkUKg7ARFMKA1AZ8/9ZUdrzxE64KpLNNTLHjzzA4RShhEnDTCQ/BYLqM0IfTkwK5GgSOrLodMMRtNSFGUi+hdAG5fA8gpWe1wLlXlK1n1ZoEXjHWqMFdSlhIpGY4t7naaDX48cS1u5JULaGTF4+eLnEk1ratK5SUIoXSGTaRrsicffEbLHGGKmCAPjWKGDRSEFTM9EhJDECxevCtT8fMhC9tgGFJwm76DyhjLHDhFkrO1Ruqus3aVBAaRx3ZjGfe6tu5HebcjBXTImqNCGKGv8amuWsQGpx40V6PpAA6tCyb6qmbIBZcEGR/goPFfXd9Y2qMC/5mbgUGuvHWacqomQ14SEl3j32CMtRD6ofNYywKT8ZMWP2Kxr3rpK6jyyNJ8+eh6tpgPe0rqwgjLgXEg6WxZ4LaUQqMCvLn1fWkDa1FfAK6diTaveCUVChNioEEAJnn9VNGZoeb86vz5tyitB6Ggg8I56IVr101xOC3bXta3nFGilVyW4CWLW/cDYvBP33WHU1Pmk2p1pjfMTIHvrAROqKBWLQbsGsjkNIGwNLr+B4E0DlaSG+lGQrmvIYowxygasQpR/7Eb6Wo5RUfMKv3o7nJyn19+/+cIfpamy1lArJm0y+Myqygq+WvcYxct1f1TVNuB8Xebzqq+i54Lk4AWVezML6w+r14hZqcAJqpJMPO7NbEjLLFmdsK0yuWIi3FajLXGK6025x9e33TJd6spLezzysAEXmVcthlH/YVaFR+4Do3klvtWo8h5tZfpSqrKCrIPi19RQTmQSt+UuZeffgZzch1J0Joj6YVI/aTmuT8XuvLLPw+TgW5RsRNCfzWzWrBZRpvIzYY+Ot6TIZCYQwLN8H9ZR9mvPPjhjM0tKq33vSxssh0YWbCg7ovmE+xKe/ol//wWv3lCCE6F6l4yTXq+RXSn6UB2E+DKBjs6m3pYeKwNs5lWVnE21Lz3mBJjMd9HXy5uyKBkT4J0zCYxWi14Xq5GTLSWokCs25vErVi4sexayBiZB6MSiRx6/kpvcuF85lPDsAYlD7rzDaZ7OqhzcSNRnyySdKXIEtvckktjM22/edbdmxQUKzU6YOWHRD+aawYrmuoIxr9mHe9j0/U3bm1LyCcG0hyk1VFObxDolVILKkelKIoxdzQdRcmtHyQj3bE221ageYBitlxRrZMcs3v7Fq/+e1gEI893rwoBl9za04INmPPZOqPgixYFOTxkZ1BHIGnaPXaBP9l9XGAMNcIkcQMtnM0OuUCF7/CfQJvQuFR4ps0ltYYQiBfrOBccecLKIkEUXP/0cu2GRDRkB6iukRpcCjyxDALJL8ndsqpbS1B3z3URG+Xh9vy3hSGUzWCVmvKFmCJ9aFTyXinTplE5IXAt+7acfKypi7Qkr2rK6tD5gvP7UkAtW+P3eePZ7cL31qfUoZhZlyiM85ni0S/SUPerw9Xhe0lWswGQqJq3H5zemPFLXWO8yGKj55+KnJxd8o6ZY8TXL25t+3R4ZCUq7RQSuIr7/SBWIDidxJeoQrqune+1nl9pPP6wbLuUNo8IeQbj9LVcR/8w6CcUN5siMtlh4OVTPLXD4w0EKxxdc9c21Pf/Q1DVbXy+uEHdCryUvJ73g+XK6bhQtvt0riuBUomZPikDIFO4GES74Xlncdgf2yCYAUMg8hoSCMUYmMGZS9uzc9AyEoBCMkKghq0QVqYETe5Lef4rEpLZDUR6yyPfAlFxBbTEd+S7ftLqDWVYeUIIX/cQuUZa5GfddfmsfoI5WjCr0Ffo8pL2LyMmDwK4DPV6fjM2XGyDSOwyqzkROC/IBy5h/WDaVWZhHc2EYmK6Un4LdNeBJJ8+1vzY7HWY3NgKcYtqpVsPbfFpHTv090VlFKuh0/IMFhh5BYo9KGPxVCR6uFReDX/x7sFJzc0DXHEFnD332nl6hhT3ws/aodvYoKfaoA4qOMu6jR+jeo67Rs9WIIkKPqKbv+WdYDQ3LHkrtPYj42L/G9FrZD7AyMKenPVw9GMp7l4OUA8KeAe93wMGA+RnZLXc5RzkUtMJsCfZQ7ufxUsNV1UQTIR+q4X0RjLle9e0XaxPwuZDwbJAsNOi0U0/G3vyKcdaME/G6G3uW9TS/neaz3xksRusjbfpEMnAzpELosrFa8R+ShXHGvTtvTcBPTm06sYx2Wn1nDt+lenFvV6V01fbmBScT9tWQijbM3u3TK9KdEitsKQt4LjaQ2i5xWL+vdADqQF1VHX/qnt+vu0kXr00MRukcdNUXic/nD1X1GAfLIr7vTgCXcKKjSIkwn49IgHC61Eb7I0g3JTOKkfCB6QATX8SY4BQqsOcLeGWRKMJjtvC7MWgJM4A+7BKXQ6QZ2rK8nkq1/whT3bG0dnONdntXJHZehN+nbE2bzu8w63E1Jnd2Yewq9hgqSj7L9IeFr0T4/LhQlTmaqJLWOS0sTnQCoVaFG21wSITb9aC3kwqB/9C5WGWWQV3YS+r03m1GRMTubG3c4QkkCSWZS0oJE/oEVI4MnBkvxaKaSMQh4FAsCWsEiycKbTwSPUTbykkSxMErsuJTXpsgYOWRDvxT5XK5Hv3kFnusyhzVeiziuZTGrLmVCCjdEwVIsqxDbJqDESYW3k+X+bSddtv/zK8B00DtEUSiDltl0s88lvATz8Gsg7POi3Nr9Fe8/QL26um9BePgEhEeC7Oybme1Gj6pUdYcwVxfZYoWneadknCq5AxdAGNOOOr9tPU86mBKGxDqFnoClyIAX9u6sFsgZfvQuRG5nPQMkVOqx1unO6Q8qsC5ItYnVpV4065NbIr10eggUU4qokpTRVSV2KMTxaxUQWBdzd/6Nr4VuS2LPfDS7pUg72FIUyFDq+AGGCkw4OnYEaIabHITLarPWDWmfEn4Nm2bt9bH7sY/pQtEkg1zAPY4lwXubt7/ggYzPqk6W2jlNC/HWVEDlqNlSVD4RCwd58kvYNalCfvK66asFlVS0RVmF4UI0+RV7vRoh11nFfFLMkK52dzr3qo95B9ia2X7OoDMplvautHUjiYaCkUCNpx0DkrnUsMputQXzVEEpRX+xI0YuG+vA2zaeUlZrif/Pn6hsFN3KgkmBZyfJAC1E3OwHIEqRJsjdAyiacyuKCNm/FuictlEQHwiirns7rdV4qu70VVvvh6W77v59X1+vVE8n1f6Ql03bD1RORwMRTakcV1KJXFm2lFxGkC/RyaZzLnpfVFn5oMXSabou6Ry8/VKdU25bMzS/a9VS7mNPthYXK/yeP282651pNR7E2dtrMOb8960Upv13mJyc1GT82Gry1+tmU1l4nScVS02ZrmhDsjxsU5e7Hbjz/R5CioFXEfR45OjqHmEnjAL6U08cuN+ILztmV2mQNgEMAd4+GegZk3hXI69OTdHREQhyhuq0GEvo5IwuwKGuj3KOa7CjMyfvkHM6fFLJFSFs1+Y6WIRoEmV2tZLVr6hKezEUU0Q2jaVbJ0ZCqBIgL6IRPTgXEWNT4ygsTmF81ek+cn4ZyUMVFFFZSK2Ws61Valg5W40AOlLRhCjOVwWlGggeLZJFCrcYkHla2ztjc3CFqu7/H5wBLY4VbpUreRxCSqOHO3NU0DytE1h6QKq4c6sd6OahH4CxqzYWGiQaQJf9vi8RjSzRNkUjqdE+ZFzP7JEGlZ/B7Tlg6msGwwI7jTlQ263/y8/5TP7poioympIHK03my/77eHl8uW0XN+/qCH6ylO4KocozC9Zsb+v8OChUD2AzjMdQcRkmKbyrf/RSpAWR8bK2CqtGFlNJK235dSmrs1ZcJfMO9MYAHTFkI68zuH4ZwGt0BJntxiAalkQRA6OOojw+S1DY47PuZC8a59tjK0/QCenSHhZjPBcGIoONM5GSsj16kvrXJTfuVShd/8KqO7elW3Zka3QY67RucWUeIkp05LUhg2HxiAeJfI9lFhHd+hWFepEGFeoKnJiZLJWPx7lfnswvrDSI7ktKaaO6casBfxjtTQh1py3RTW+ZkQVcV0Ap4pZWtbRbZXox3XFvnz52ay3jFUzqXFX09uTGiw1R5I4WFrCDZfEKKADPKCCP/RMRxPBwu0iVLPO9AcsIbp9yKocr0ak3cQ/xA4UxIi81i6V6d2vNZiJa2V9suTYP8Ir1ANQzq4BcanFHCYndjhzmZsv365t/TO/KlbbEXKf9tPbkyrV2SFcLjr+vJmUUEhj04CMiWpYVP+iHszSbdC1gDpGrGshFDNSa6shCpMqxLE02OaULouN2XxuyT9Zi8a6KDS3XYc6YfNJ+0l6XpzC1RhBxSJpKqvUlNht0bO6EVOYW98IIZoJ6/H+kKeOWPNwDA+ptbaAW0luVH+IQPJvPS4WXRwXmWDimhUgSn8i0y87ZKodeiIdcWZEvxGPhvwfmC2HojJmzAtU0RAzcH08gbFOOJLzfDFYF1t/0rMIrD1zeef58rYylupScj167xGhTZHbpjjPl/109mPhRqK/W2D3huy+5Hm+3NReQtYnb1KuYjkvNqbHoc9mSGR559k/BxqzUcn6CPX+uLNYov7wfopd1fbVZ6SrOlvTPYm9XRnofP/bmGi4skettAdMeEhw3sznZad8cmOOyLEnWkKE9MkpuFqfrpfFT+RGL0fMZDZ9WHtdywUb3XWqWu9DGDJ5NB82vcc7miQ9YV+aTDwMFbMbzAjT+pquLPKAUZwbBHQaRDQIskEfXXVj6nNZdnpqsSrNs1PULgDWKoeWITBXR92pTISVdwUMLwSWw8YVKWMYNCI3iyiVR9XFzHW1YuMzjFLVpvZ2KJ0syfLwiroB7TWKEFP5m62vyN250A2pMpvugPDhhztTXWzQdKhpoTqFp1WK1Bi3i4SG5fMW/5aF9G7ELkUc36PVE+eVcju3zYNG3B/u5+VVnaOiv5CdLtxtqQA/QZ+ToppQ0mVVZZLxFejTuVo8y4eualioWqG15qSq4GNnohIDFxX6I2uVxc+Q6848B+DDqiGRzp+vn/c+NXHVmFyIuagNrY1djSZ+izkmN9/jh3NqtSvtgGKwceMGqHuEs8Mjvhh+TxUGG2q8VaCWnMLH7W3ge+pYTIpMBZPKhx4e41htndov193lJYj4S48hZwRJQRtRBGCth51AVhhjTgTcfeUopr353M3P/1aHSH1w683MmkpVsiOMnDEusl3Cded/UXVhhlT4fFyKEmu447iiqktdqBDJaL23yQz8ug8OaxNungb/XBQQrzLxwvAhzuOz7knUbTykwaZFi4LzXkl+vPXqVG3MZoVxF4FqLfYrr4WtlpagEkKcBdlDYvddIgi92qx+gL2z7FPIkosG4lUJgG2mW7zMB10jkvqxGm6WIcK1iseqA2H00Ldqn2d8dRdd/qxLr5SNTRYL9MR/RkIasANVgHNzRrQWDYdEXHzRRcCmMMuJ+t6fbqPTNiQ29ILFAiRNbURRlbMFYnwAe7lMQT8eS78smou0KjwWpwIsTm12mn85bVURrjWp6ToQ9IF4A4V0MYLIocCRnhKgW/Ehg2MHHftW8Fylvr6TQjaXtRmURCbaqXPDpi4TtLCBG2qvPpvNv6jaUW36+/CqhhATzMn76CwOuzW8TsLn8F8xKeTm8tfHbAvF3e4i3sTtpAbkECmAPSkpXE5/Bd+StIlv01Xvavd6AEccmPFgZOnvYobMAK3dpMEQBbJtA19SRzQlxRv9NVRdmXWBsYGlcmD5IXWSnzREsJMM9WJTtZHKD1GtoY6xBy3lrC09ovrSzOt7yK8vp+OX6bDKjCuctlejzB4uuZz+ijcvPba8HhfeZRu+nryTvbWZaV0Wwok3AeVFXbMrWHCC+0yGLNeTis6qwRxmxc5xES6yLYRrmOvAFIc7uDucChWRx9jSzKPEQAcVgVhHQ/VMUL1xcwO13I/cRozW0dYl71rDoi9/JXLf9YGpiTjzeZFKEneOr9q52pAW2v1wnzZTWfeRNMGXRB8CdvaSwB9omZQVusWc4xABVcGAKkYyTTQHpi6Z9GK1jrX1GPMBMo5nHAis2v8CGwK3yxNeBKzxzzEkxDZsmjWBoLJ/jj8h8sk841TAB/VPsSvEPloRZT3jXmAI+Y+xMGhncUNCMn5CwR4aFl2qEHg968intntd/AgQuWFh7U2Eh3bnh8u2OJSHTqlLPCDKM7qHL1j22WGr6S0QmcT8Bl07vtqW46WkrucAPWW0oEmBKYd0tUFRKrS1+RhxiBEah+SPkRZzgdQQ6PWsAqMEJqTNsvht2m1fJ4XRWQO1n6oQfZunnWqlmnNmOSKoq8WTapHYbO8NeY04k55idfq+XA9qKLCw32OsXJXKO53TiK79tvHrkSbnQkzRLDS3ff/ix4ySvvoD7QmVFo11AsFNfKd9m4tvcJB51gDCyToidkkZ5M59QZjXGBnOIRge2dCkR00QuSy7+SXGflEVlVfVgJ5Jl0vbvtyVqbXKVlFLatMIokjm5TgsE4qT60K6tNiaVegYZiRqUmGJbKkAhFVdm9gAiyc+VfUmeYqnz5N4byrXau0ZZKE3gCOzTGDTV6zsziuddCYrDcvYbGbAiac/iWtApdubNJHJquCqhOu7RtNOoOvAySXLtN5apXnEoeNFcXE2n1IqIf4X0nWetr1L8JrwpIdHKDvwQMXeTSiGU7nOhJAFMuMUQHuYIrmiHNJOpEhNjQt22RM6gu4WIH9HJDTnbcEG47q9zge0AKNTtalk3yjSVMM5KMKKmJoPGlNSyCgVMLXkBWFqhkCN2TNTs46MzB0TN5QRxItk95/JXKxBxNSMuTp+iZSLBJVMeEhVSVq3GNQZaQT+7YiEYgTCRLSAxFyxIum+uTMkCgOTByYUCD2FJhiK+brxaXxI/9IQUFsKLwfLunzfLFd/Kq1r5eeJShlCaEjaIY1ugAZpSNpDifouduiLbjEAJBjzTj+C+3XK4FiO5zL7wJ7jvu7LSAsbTsN9Msa6PoesFBaoWmQ8ANkT5dXHapeY+3DfA1xO7dJm1GkEVCN0OcHMBcQD2ZJwTChuLw6cnhUOJuJWyOcFtyLcAP6FqNoQQlLF3AArOclPng0fUbXBZ5v+gJHfxziZRGeFYnUspzMGj36iqV15nt7eQkZvmS9+6iAJPmKg4kmMeVWBetNZUVCLNzQmmiLXnUaIlmbkL95RE6l1CaZOVoboblGXEQyXrIDYGc7VL2C3CRjQY4XUQPv1oLvyjUlfSWXFoAwNIIegEItVmMfE0NLVL/M2JqiQhGfuTCUbNQmLBIc+wIKxfJXlR/GaCv2aREskeE0skbAAZdzh2tXw812TjdM9WVd5dt667YMoCFjPknKyA+VYSD2dwChcfTzeaOIo0A9B1MQ+NFbnvD4aJF7PmVUJNf+Z1jdQwzO23F0iWzhPbz5q1rDhHvfjYaPfqMn20GWjzKirMcPldK5KjII1U3iOmyIexbMoS5SXK7QUYiR9/7jugKd8OlBzkS3DIhIDAlZCvKAoSiBCTPANrW/r4nfxRxNtVRZiUD9h0v8G+8bObd2eTGiI4nNw/Q6+9UDBEjUsTxgFkR76faJJTvZ51HzTMqRyHD6ZQIiSXaQnEutIEHzHX1p08/ZRI/sVYX7YQcBdVg2pPDS9R/wNXrbnt7/8gpqJ43XXRX/Z8tu1PeJ5uqyCDkGFwiR3TvocTbpWmyMsqQnL82ZSJLylWacFxBbHcMX+i81pvS6hSpUijgeS121BpI0UvW4RMkNEoapYlBwj2Q4bIoWyRq0GTGeXaG6VBf9s1DcpSXTZ+ORpjzMeTbUKmYVoZAmRBqBjoSBQdURK2SXWyABrosxlb8jNdHh5m7Y7vSW9N9Rmzuus1lZjVz2w28lxw6qMJKeWOUX8V/VmocwphFmW9BVV3hXlDTmFE3NlYfKgsIzlArkR56Os5gSusGps3pD7Fbzst+e9hpBXReHxO+EILlBGaF1XuuoiuHJzPTUVbOJbUgxE581y1Ly1ZjDeMP1zP1wchFKeO/ZQe+9w0FCFkiy3RPszwe6QkvPNjNQsIb4j9T5O+j10JlkDaWxCqWmXOUcXWQVufGiunaK5Y7nTlDEGFnJsnqyrxu+s5IIFkwF36cIYF5iIOokrzRJZhMgfRLEEqHTBZUv0DyFmhHVyPoMxJGqGBTMEFinYxSCQDn8PwISERPo5QlDemAMwqN/g7oBG6QWpBKoXNX+5a65wUqAYVjUA+SeyxnOEobzqzK5mVdhSded5c/WB6FVZSyJt0HeVQxfjBBIDafbI2X0V1U62Jy0SENWbpe3lr5f5dFo05Lrw/Cei6Q5pJFodXeYwy3lWSt5mD5GscLo/Sbq3+Arvt//vn27mcEFU6ienOfhY5227U4PTsu1clX0ezc153imdhrIzm42MtQI4qW1bFwXNIdrOFdVwFHfuhQ9AwqBy6VVCEZQipcbkVsnBp1qwKCe+o13oPgbTe9QsdSNITtR37RUVf5+pthIKzYt8MyE+z/zLuIY3H4tshnd1WD6XgGNOuobzrewRJUQBVnL7w2W7UazQJl1yCmB/nvfbzbLzX2bV2FyUSYflH/1D51Ff46QQk+Dh/HcFTrQa9RNOgst9BRIGB2FtOG/mWho4xZ3VkOW9c/+8c/9qFOPL2LtEdsaG7H8BHExkD4b/qgJFS8kPj01C9kcyxaNLQcKnGGqwScVuh9ffp81mPl5+v5HbbXdbVXyq7f6CoE9OrqAlmeXgVh9hzAWs2QWitXN5NYdv0RLTJCyELqPD7v456IzI/+reZxTejMyalUoBbwagF216AY6XrTDOUIddclm8oqtM98FjQGduVfy9XwI1s9HD8lmkX87Yt+EXzop8hH0bw8P0e2RuoMyQoNTFEAnetYgjWVKLgmNRge/Yr0h5xnWz/ktRg5lkb/LlCQ9B7lt+s6V/0/biLz4PYtXVdvktB9p0t/r5+vamaxVeu7oewyLK+qgSBxLtfisVxYyE0fVAjfqzJllX/K3yLXeSQe6hvq0t93alT1qulWVJAdPHnkbZp/3ofKIU8E0b4revWzV7PpocsiyKJ8vAt2WC3KAdPGI9l7MCxl+jUCF0ozpunsyC121xvT0rj4ElNpLnEenj27DJH+7rLMcwB6xLj6enDIP5dC35Zvi4LLv99MPPg1tJWoUAYCxy0wUY3qoEu5XMsIy+i/CbsA3r2qCwSJ6myKQZZ/FdGQMc0qhP8WYZLxPgOMJtk4Wdsi7ivaIYRamEZFx9u63dcjEoClfBAXGXWhM287ldTtPhrDnXK6nUukZJeSxqq0VNppDgfXiyC/20pjVlpKCuQbYXRtISBcdQNBVnC60MfIgJxqX1Sh9DiUpovCoFIIyRdxBny1BWCxxlPfLv28uXzXRHVftsSUJB+NPAVltkAN6wfd5etpq9zJaKSadA3g6rbTiJ8/Fh9Mov08V+sVfOWmksvBTBotgafwNOx6sqRLYVvTp9gwBDJmEkye132R7mnVfgNWOx2p12WAUDWWXJR4lYl+pzcF5lh8EyJIgluAfEidkJCCTiywHx5ZDYKsdp7bD6bsTyInjZVZsIae4WVfHRFglKbuS7LR8IX1UJBT97niSmmjKIud9PvdsrPUl/yGAU6emJLJDjqi6Pd1V9JPRDRM5e5GmEJwqevchgqKYqvMVQaPYjeX/QgacehALZmeTNbvWUrdvJNoX1/E6Oi/ckrMnEFp5v9LXKJVrDSZz3TXzBdzrc4HyvantGSeRUnInFHKqY/SxVWmhfgb+h2wQQIQNAGCEitpUhUi3HkIa4NLvkH1Kqvln2MRP26I3DTCD4IyLH/UA3kLMA7ge8JM8b93o0v04SxIxqng1ZDqckKsQdmmmF+GZXeWUfFoxsLKw79FJQYceQAmDK1Od1gTMKRxxNk9IKAFOjakNuOQ7rl/yvsMIHHxNjYCjAkXqyx9XkUheSPUSF4u+RvVkzHT2Hc9NzihoWq0+sG3FkHaEK5zFEyZT1pZD9TLQz2A0n951ocSB5CZsdHBUsRyBfmBMzkHkCFI9NekDoiJKvggwHgwyyKMROLupfLOkWCJsQaIl5EZZ5wdwasKhyDFKJcgC/QLlsdKm7FnEMgBkdI5+8ZtHqf/wqWm+2z+AgqMrqPnXxrQIAhSESbtOI8Hk5sjlO5S7CL5Nn1re1Cnd483iHG0Fo+Ym7qOCIN95XF0kpP4G4pmTwjYQI7xwzYngSzv846yjqIogf4XKF22HoS4pbhDc1ZikIp60pvcxPhIx8FL6iKDT+rCGNFjZZhw2fUH65P+vwUctqlrtNPBxqaYr70NdsPPxKPIPKv/P09Vlp8CjT4NF/Rjnh1rf5tJ/P5+ldcVJJsYCBpBQR2TvbsJ7ALmXBFx+KczigFW7QJMPwNXpjFTZvyw4vGT/Q/BAT2fmh5zdV6RpNliBgFYV8MAhWBQQ3IQv8WO8yXa7nVahEPf5KPn7EmZGCo217Na/D3sqvjBcfeZ3fp93uMB2WCOxppf+Sw/Vocmeyo98X+M9yUI9BGEW27N4xasqNO0QQI0Elpqxw4APbV3asNCBw4WFcR2bizUtWg48m4UTTJz/xrdL2bGySTpsX5GFo2gTTk2Uj307rsrK2iXmqBJnzYwWlw2m2h8LxmXBCJr7MWe/bprYlo/GCgymRCu80bNW6oUVqtLujjxTKyHjcfSD1iSQHSAWQAbiowl0hhPcQ9XQuliAcIKBrDgsLqLJhZJIZgIu/ZSqA+joYqERwHhlsqTH1UBOHieA3Ok2JQHwEKJFzF1GC6EgJQ8onI1iNBb8i0EUDNzYvKUJPTDjYqlGPbedHjU3/VI6DfL5hNom9REZqBG5kG4qw/kaTnIi8gpChJssCmavbxPFzu9vPy3I5X07TUXE5yOZHyAXfRhwHouFYpcB9Je6NCO54MXySaMjdLla1oSyXAJoFDoc5YAZUMQM98YFc6Gg+tczQOF5DamgiCiLa3QnqCSU1VFamjD2l0cMiBPxMi0PPPVwh54kdwwRZwCkSBEJe4os8B4BaUtNIgXPEn9FEFd8qteDxDUUnlIRQaCKCv3xelt3sj3vI6QXO9eW27i46HvOCJtTvhzDLMuxtvvgTRI0HAHb2IlM6hr1XVcFvZL4CxNuYG3tdXufNdj/tymrwy5TCKmpCEWBC2uqaXkursoMOxNOYG6Q7q13jGZVs1ChpjbmRnDMaDGKVhWyfN4hBu0y1ytX0clW0d5LLAm6+HLMtvu2WyfMgUlcExTZONT01+D4vX6azP6Th8RzDZOZQDEyuYkdbHcyVhWAT/dSw+ZWph3meL1tFDyLxfPjex+zvfbcoyl/ZoMf3HhHKS9hT215WbxBzVdl5+mV/3V22m+m83vp8eps2qgMgP6uqilCKPLN7ueyUxd6zmP0wD9edZ0nCRUgSmynx9rAXd1DeIEXFWnW2hxKm1euShFOfOClUZLspYdp3VWXtjQ7CcravWi1Hvtiylu8LzZRsAJGPdO/M0gfCow6uRuiC54nPlaMLJVMydOs1fVHgmbL2eLpwl9me46L6UkVj5uzs1AvamAzOifsqfpZsIpgRTKTCxbX4d75M++N+uzktiv9fspODfTp3fFHYvpV2FAZKmOawb7YnCGncKnO6h/QfMQGuVPnktowe1TJr/aSgq6pEKni5KFKacjDJCClyn2BtPc+X69WHLpYybMMIT5WNB7t8m046siylyjzy/arMPWe+zf5RPZrY+0y86JtvbjSRSQWSqDZBTfH28ro9qXdtTqAUAmFqf61vL/G5g6ovzK56majrvk2+FXPPZ86VfZmOSqdvMCERQOuBMx1gLlJeUPWOKH/SUQhiafTwgEBqWFxBF7ERWlA2BuXLpBTMx97eCthZBailBXUkp58T+25dT2EbzKIqZp/BVAkepdbdHGsYjjmW3BbSUWXw/oSHWicIrz6NaNSVQE1zDLqLRLVS14Wtbg5fkM8dlT3wlgtiIHKFc5H4xW+W3XXvOYpxlCE9yTKrzIP5y3Ld+a/LJhEWVRxXvAnJl+VLYclGVB4wvqHb1/Hru15el+9Kx8IWbHcAQBDV4HiLyVgMo+1NHgu/LafNbjsfLpvdoti//YmExl/n+ZPfftZEvlVnOhiBri5tmdbz9lVxw5qMKeGnh/Kh4CkNCoohzIbfqSuydwzfwMgX+VDpWATkgrAJju8kpjq2r/PGP4e72uTJwgZoiqRFP/woTQxk+OQShdeoR00o7p6374pHZbQHPhPuf/t+8HF9ZTHK5l6PZklkpCKGro4uoTx+YU7Ah3RhJbxECaoDA6yLohV0bT/sdT2trZDYS3hiKk5ix8Yhv9RgwN9LePHbw/r9eog8tcEMe8YSTjOBEN2+H7Zv282kepD2F4HhgRENuwKgiweja3yl3awG+/va5BYpE33Nm6Gdmjo1p95cY64KAgHC5EZizhOBwFbBk1uzy+neKaikH/8LbOOABgHHaThPyiojS09MnkNq1S7S2xDQmgS3wPbwrkQ+TAAv0uqWzUohzopcliMHQMdKdnXOrjM3Tzgiv86RiM4xXIvHklK6P2+DdHf9SmyIdVahJFke2XojZI3pmLPULs7b//gUjYNEFoGOhiraDd1WZE5eVInIMBRO71JuN8iFbk3d5OUqvVXzew1YhfiNBPRCijs78fD/o/D0pt4reujcUanhrO1/9DZqzRJVcpbi6/Z41IotNnun3u2WSYU/6yx/C4iEaOGnuIF2CgPT2++T0riFHQ2s9lQ0YDaMG6qxJap6q0XNuF0WskkWs/Mk+t4FeJrBZDvMqzNpPcDW1EkG8gNYbEa9zqeiA0ts6eMbck4RjAaSmADoT6GkRIKxX6JLJaUJ/wx7N0KhGqgb3X7B0xIzGZuVZwGJpLmCPgAbm4cQwcuJOfvdclEj/p2JM1kVs1OGzn4y+JSamrOs1LYSNAlZ+d1u+a5m+W1yIgEVIECgSozm7ie/f1TWjUm6o2HwpkFV9a8r029x2o7GEyyjh+l4/uJ/cjYfeggDBvtHiAcm8UR0YQ+xXFvJIXao+zJxGmvYnPjWXUwJ9n9yngSDM6HgCFI54IYSEzSAFNVhyqoVAgCJI3dKVJSEhU5QIrH4yfAY1XFB+MwxFzHcEmLlfsmDkV1Y+DJYTtJBS1/GUJ2/IsOFxJFFJFDk2EyE5kUM0ESo24m3jJG4U8ExymUMnDYRgRE38WTgRcz84+9FwsiSlJUkfGElkDQvEYGUQGnh9oveXoHXiDB8cgIsm68aBWbShrYcRsIqZYS8Kza6Q2IbQXwoyGkS/mW9wrdpc1lOqi0i2ZOqCkXTJ5HOsvmqqOTN+mlyaHF5U8/NTJo5ECMmcBKl1kURudY2H1kqgF98tEtrqiQCqEwWpVpMItsn5HI9KfhHZStppi71qGEkjdlM+wkJQn6VCTHC83GevqoI2L4ZwoZbWyT7fJw3awVKlaBt5UZT7iHWToiqPLCcnNq69+vSk/JmvP93i514A8shEUIHV9w1duHwOIfCfzYNCY5+qTqRfHN6sKQylQc+mmEeVbGwbEvry+xCyekHiD1uebdVIBWzqhSEl1GDf/pQLFGJAdNfVbVhiunCPUJzGNuMiULqRSvzDqYGKygQSGlX6EyQzAfkOyC3AZONApSCgnUt0YS7TO/+xzOapWrErsP/39yX7TaSJNn+i17mPjQ6Izz2i/sng0GCKVEp3qJIDpdUZwPz74Og6OeYm5s5Q5mq6n4qoqrksfliy1la1haB3ixJgoZGuJ4V70Utg8mVvBCe5myMIhorNLHPq93TaqtYUaFKRKgqRh6mzL/M6EqPs3taHdOdyTd9Lx4q55XqbrdSE0JwgZYiiecB0+/epRi6zihA4nCNZ6o7tALl9IJq9DAwPF0qyn8dUheCC4IPLAqyPlrlde6mEEzOl0x2zcZlFNQxX8EC4QcJqI8s0sy9zyCgCVLh/J9v/nJQ54l3+x89T84rLXERarcg9mf5+Dh3pjyTC2r/BY2bs2ICDK7dwrIK7zze8yXF7/b+kHgjQ/FJ16/52et9BZy9xSP3vDqnAV5o3NP8zm51vqSML4n8FQgcAILAg7+tDKbEDZJtRlUVRgitcWAv5D9d7/Jxr2AVElMOFH2MWJpYiWxj0Yl+hIEGU0DO9JTBwM0HLLdmKeHheqcmo1wChHAmR+ocejRAV4HeDZfPuiM9DuI/Q8WUHtvNUiLBefUzDSe8NZjJiXvDqeDVzf26+JmoXys0utkVY3HCtyc8nZ+2m29fX87nZBudKxGSxNEa0UGxgXRep+MFd2+R9x4Ka22jKrujGzHRZCj+wIzNaL6oV8aNV9QrY5ky5kq5Njf2m1EUDlEGFIcj4gnLC65Vm+v1RlGEE4U5zCPATQacOiy4gTJrC3CbpS0sWlJhK1XGsr/K/nDQZgCTazVAaGbBF+W8P2gkuZsQIU5jaRYZdnlP3B/VHtO7YVYAkKct9AzP+xSj2vvggLj5Uz6RRe6ojxKDKKZDlgNdM7EvhuI8RSWorSiUnoFiw5TIwiFVKaX+LWumAFWhOpY5wd2pEc4vbLV7et4f33Ty0FcyRK/bvEqY4LMLnf70In9/2hzXeVGydxs6QhLYHjvNKF0X+1+XdyyLOhakHO1bPq5Xr2l5wKtsUeeLHDv0bfLeSCB4lIJeCH8hrlGEXZ+PCvs5uBi8AEm9rnS2HXW1KdRuHx8WMdjToZFG3j2/FfrV4lARq4zHMf6rJUoPdM2ADX9E2Wis8u5HUbI+egnR1CZd0+x0oA8t5bmI5SZ4Pxeqb7GDcMUjpAo9RhlKm+X8YWaidLLTjzJ6ZjzcGcGHP6oFL5cwCx6nwn5gLH6PMX0vC29EKWa6kJRyGHW8PM62lluVhrop+l+ahsabU+jHwe2qsOd65z4Jsvp1A9wievLyLU0Ap4Jr+AKii3ON/699mELnYgd0w8kZ8nDcn/eP+zQWrltvdhm47hh+ANcNPCF3PKpAEAhKhRWc79w9hN4CoZ7F9/+uBqu1htziTQG1dHl8XK+fVBg6+SdbhUpqxb5sz1+Fu75eSVfogl89KJVf3gdTYuouyI6ljQ830yyJQRH9lwps8z2e0hKH/14XQUXfR1Rloi74+FOtoIfz2ZI3vf3PVB2RSjm53t6fZ75tS3USkYCXjw9CAcyS8g5en5K5rl1zL6m5bwI1UFNHkc+SSS9JnV9Sk87JdVaj4jVms6nDSuuq4rzmbC7O4efnzeNGbTWhbb2brAd82YEOFVVhIR/Wx43yO/QVhooVxcvhsNVN3sH3PM3is8KgSnPPLcxOBfGheaSf6uRxv7Un+vw3JG/+NTKzCpdVdu91arpk51IKoKQ8AqgupiT92mELNxFrV8i53u9BZYru41AcUtAZcplIGZXQLJtZB0tqFubKQFqNJBQy/8jlixNfeHgwMnPoUVcjoaJAd35/N2mkXLs2iTVPmMzY9PqrcCFlo9rU/urXsA1nQENGxZcpr31owftIyfQY3ELCskbM+5AaJOx7mJdm7zyUzqIHt98EMm0kyTqDHveXzJFmcFkQQO03+DbgddZdoZZ4Of5QLimDSzoIIAihFFCk6r+Prb6b6/K78LvNQ6rv5pZT79+d/m6VCxNsUTTvh8J3m1FIipnnQqPQ6S3C0d7WaaOgG/yNPmJ646aFOtgQj0Hs0sOQF+YR8lg43gYVtwn96wkY0apFNQXkNtIaAiVrWTSHiVCG7nTfw38o2Rf33OezFNXt5jFVeuHG2X1giuDvBm+b8+OL4k65rg8ZWfnOlvo+eDr7OxfBVRzq5+u3vdKREgJHLRRPSfNGOa9HmiA8JmkQAcOxsWK5DHi4UZXBnBfCrlPsTDVwhI1zGisSiGGaQMTGEsspvH/h28tuEiZ3x2Iuirg9BRDM/ABvQaAHWRLpsjcj8k7A34XrAftPAoJNQDKWkgGo5pvuC1Dc68d/2lz9ZVZHRcyVtcBOcJYWwonU2Jr4OEheegCesqs/Mvzm6cdm/ZYWRoVwFS0xOqMxYg+7e0yPKYlSqDCRu2BN2k7n3ZLTWoDP/Nw9vhz3u32KkOhdJSQILeMgRp8B85KxrlAXxiJgl0GoARfoxj9P53XaDencEKS03eQIyCbRqkcXJDDBRQQOZsUA1shIVRFDge2hiUcaNg2U4YSLsM+xgYQ3HKZJrQGpOh6osYwxxvoeVvKEJrRgzWCOQGe5xlhy8yHvhKbCCJEstgnsPO6hyoQdMDYpsXHhb8XGhb8VBTN1YKUtdPJJAncQQHWIgAFBWLCyxGYGmQJGCLiaYIwQWu0rmV2noKHdHiR6Ek5BsYYFt5Q+xjJIEod4n0CAj0i+RprU4H3SgXxCChBa/CKanx72hkma+2jXZ0i69VK5ruOxG+d4hAQhDozfbGRRD+X8ls5qSPN7UE4HKFc0dHqH/tuCm09jsF4kCQ+iHd+12YiChhaJQ/ZFNml/qO/cPKSgQnBe/ZGKLwQ39orLvMVM4BcWPUhfcGW+VtKk613eIyW1f69a+yGWnHfPe2VNFnz97VLtfx5KSfS4cg/CUwACYwAkYQcHFRLLNmMySpX3Mc9nxP4mJMmJ/yZUDhUgBr5i3ypM0+P3lLc2Sq3chk5KyN3il+oYcXD/MM/GVr+RGiAhW3R9iYze+50reJ5bo3E17+dj0VcXuV3EMJ7spKELYmXYZNUNk/eFwl3nR4XOG+55AROd5/iayTocCogd/z/2FhDm+Pis8+Phy/nxoFvobj5cCs7mobZqsflsi9iswUlMUr6QrQfGTNBNcUqQHhr8onz+dC4IyXnxbuR9fjzY3tHdNCTzyGI+lMZdr45axy645pGoktNOB7OhKWwS6+36dX1WaZsvTUAVq8rHm5zXr4f9cXXcaJkmF/MnlJCIpxUio/50Wx9fN0quTHJBH3oglyrha4/W32hsargwMmacuwUXSSZNMUhl9hQQ8BCtJU9I6jsqSmmi+ViNfDV0VeEeizMGlTIQ9Ev85tsrVC4Fksg2snc9WlET+iVN5S/AeBXFW/KDHrygBAjp72G3C2gB+8G1I7IeyxxW7WbB1yYlxLMw4ElhVHxTplzZFNSGnqcsxVZRK0VvO/hMwvlG1J5YaKJSh2BirgbcWlX4LP9IH3cQ+pIPI8FDFkVyitv9FMMryNrRssiEAdLjnm04YRDMNlzWfJPtNbAUWuxFLRLF1odWnl+UxUnn9thEtfr9B51w8NFjVCgkNGjeiMRfSF50WemI/jgi3bflu5lOGCIPTLspyoDKoXAN7f35/5Kyqfw+GUoq8VHJ2IkPRYhufCScGfGBwPZGUyvOjSaGRrlmCr63qOfEinHMYpDFCo1bXzwlHhx9/HIQWwM2Iy+7Ca8wLISoEc1ykPAPLsuplBoygGbVkseBejdq1kJ2heJEaA5K12BGHwbzwpJToWAK5rloOw786ARrGyIq7CywrEXiFIS0BoB97wir5IK0MqYmQxYFLsh4UzFPIGeyUqmKdAkoptQtjvilYisMD6jELUSxDCkWRthI0LjCpeyy0k5Id0lSEpigCidhS5SFDTzSGdxWHuGCf4OEbdmg9/ySpnYuchByLLd/KvHO+DXiUhedoPiDawVLJf7IFJ24OFBgx8LBKtBR6CJvdToHo/jLii/mPiZ3/MGoPv5ALAGGEqIlfh98lPgD/AjsuvgR/x9URYgyQIEdW3TkGuayVqR2RHa04RAfN22Y+6FQXyOdj/8pPk4bj1mrhg/nSRQ64ykNvzp66iFriH+OGkJc3qgttXHhIRNup/x8iX8VC+a0fKbdJdBfMVWJxyXxYLDMjutZMOzin8dvwYQcRa84sbv46rr4veA8XZQP0xlTF3MXQ1ks1wonqTf+Fb06IUMWHyemethfujhXsbtQsyyTScQJ08VP2QFcF78XxKh5oANsGd8zj/j4othTzr1D4WMezy0A5NCMQbk89xdl1glwRtxb6AIeXy/gGkNcnmw8Qa8tfh04lwLlC/dCANih+o0QFWKNwHdMcYpaUQ3C+/hv4uMgzmcjjN6JCG0YApG1B9HkCkc9eq+2Bh25f9ix74RPgWEWrmGEVBXC8AoBSAXUo/Bfh5iEYKkxHBOCyzh1aPhG8zMEIDxweOIgYJDa6QhUeNjwtJHa6bgGavk8XxgkSulq/spFrAnTCgipcIbUgUEnQkNSe6mAEURXBKMADMDaS8Abb/CeRehKHh3evdATxKkuQ1wFwL/+wt8S/063XipIIn1t8P7gc0FVSck4JdDkDpcHAcRfqm0oFVsxsgjkEb7j3YvgXvSs8e/YGrRUEwVPE2G+paRo+B6LHjjeSy+cDZFeMISyOuQInnrD0UTghc2kAuUJdtIJhCJuwcIaC49hYpJxDepA0t2ApRIy7wgzEh18lk8YGOIaFp9S4J5JISAOAH9BhD8ldCykNEs0dGSg5jqzfAKiWMxgeAsfeVG1IpeMSASktwObz/yWpHFYSpkoK9MxgprwZDMKmBZxDxR+o44HRTKw4omPGHBCjIT2YWcVEkQWqhwrRThaYC8WnFfsdRKNQTk6yhzhGstYsknTakGDitDy+RfmARNshBYSO0o3B7yNCc82kZDF5Bwrb8LKEwl7w3+Hq+Xe6MSs1hPmwUS8Br75JITUiNO1qv38rygPIM8iE1B0/VHyEu44zOcG/C0Le+xLs2AtShAYBSgaUZZAJ7viE6F4UJF7JcoX+AvqdyPNFNVrdouB6KkhGFNb+qCGqCDS8IA8XLQKJaaImDqMh1T3XnnF6Lmwcy+0yQ1NB4Iw8fVZt0csFcjDq4GyE8Ucs4SDvyDawCjrUHyEGIMaX4YFAKFQi/IPFWqJSgh4V7IRy+YsRsb7YyUhwFqUmG6WDgSei9I6QvoPrQPS0uhRTp49tTMIccV7QRUhNEIBjZwbkjbZHiBQlqxkg5uDN0mHIJitSc4/UR1EqGEFtMJdhLx4XEP7oakSHa4hinX4C1G2s1QH2PDA37a4U+xDxNK1eH8tFZlZ/GNpEBg+1MQjEtbTcKaJIFYPO5t3CofshZIrZRUTsTP0eHJRYMTqlsKrAEe3/K8YBc3mHnfV464QY4aeCtS8FzTFkPgHZP7SWwpzHETcyAFX3lKFZsxaWXS6Qs8EGNx+EA6LipXQ72TazBSPyQ+ARgy7Gbz3RkiMZEUARHEAialSwLi8pODj1gWloHRKwSBEP0ILiBkX4huhAFTWaG+NkwtzTOy82GULOi7zg53WW0VkGgev5YgGI3uCMZxwhlca2T5jqFLvjZVUAih0FVA0NVkDZ4ZmaOILECcREUJJSelRlJlA55d1ylUc3PY+ofkktBtWyCItsxIRI+QvB9cIY0WIlB0L7qM9K52s+abKTGTVUqTeFNs3PqjuZZ06XobaJT7/eWoAYt3czjbnXpVYvkvR5n3qjQHFILG7idIEU/A8QRc9d2z9BYLH+WWT6sb6CgQ0Dik0yhGD8fjEark9ZYwQ2I6JNwpl6bz5glhIkCNih4V2obEsj95E3i9AMT+uGFbR40YBZhYlVZC/yyOIYAlULXGgsJIpfUTKDW38f5+jbCEqcb9ef+vYFETljKAPinvbVTKjNsa6y29VtZbWsj65grW4MvXvXo/6d69C/atrT6LKw5oNak+kP4raiQFxskEWVu7P7J7wRObgzLyJ5FeI90QMSMCoeuaQ/+b5JzJMGXirWKusRHF+Uc7YBbC5ljm6wx142V++J/I49eSj75bxfV6O6zSGcq0M4j5KdKKFxAr8IHxt2qjIu5PTy167r7uolk6sK1bIOG/5Pgtf6piSY+vKFUpGuB+DdWdA/YW6rmCr8v7viIqMSwxzj4cX37XIMEWUjS2DS5dFR5TZ0J68Myfmp9hflDK8L6xVoie9D3a4aDdIN3QuETBejvu3zEv0twROrkMqVLXLH5s0pNYdUcGqfbGMHD5DsEwBGgPcSg5yybAtALAAk2JASOLMy3AihgcNm+Zmu4J4wDuFd5bWy2V0lsxZKLeK4kYpXGjU5UViWYwol3dRDitszpuUVtq6aiZG6hLPQjELgEPy8UxEJgFslH9hfFgN9yFMJ57xxNkAhoJvbqYNbG+JkMVoVnFG4GgWbSExSzA3xDzgNy+2RILxzdlowMhmE8D6+izk98VvroyAXDGuQSd4ouN/i+m8S6iduKkSzQX0S24fVAtdZSBOYjeR9SENA35Bgy8FABHwvrh1Qe4425YEOAyZqIl8Id6F2BZOPd5njlQRmZ4h/2fRC0UsLbaqvKcnNp4lxl63L7U+HlP9vraSlEus/WahAvBt2FdlDiItFdCXxnqk912sSsSKQUtMHpZxzSgUd4dMkJYTZImiZ1D3yMwnQ1qZ8yifPuJjmp9QF5QL7+bwsjopk4/EDfs2UPyc2LZQfhiRkxL4L6D4ObA+NAuNtW93qMIBXzl8wFFPsLwfqG1elZ9w7YYuvx1oFGC1nxxxFI4quZ6XIiX+knCk3K0vByYMRxYeTTow8eZGqpbjZqGojqJpKXReWY6jfqvgYPie4NcbOK9eU0stIS79MBFnifpsi280VMZ+Aooq0NkkKxAjKjCdQE+iMmNW9yxbS1bULINL1rMMq0tRTUKlZ+LMIO3AqIGI+gS6uqKTijrL4BsA4dV/3a12e6U1IFWrJmAKbsB+lWILSElxD75dTHmtuHkZjn3ylPgB+LLxYkcCAHyHBtyHpdovPEDwfuueVdsPX/7+rn+9F0Wv7aTUDGw2UHkeCGjCBlCxnUrxCSySsNAOCzeUkmKr0dVqIID6k91fbc/X4f78uuxSd9MwCHNQrJb7ryIVcAjBVfG8E0aOdFSDgo91ta+Pq7T0USfSCZYjTbG8sD19Pe73it7cjemg+WoujvX1sDqd3vbKO6cTR8Y86MKAdXv6+mN93DynHciuSu/QItuXH1u9xzoxyCPfa4Qg9N37NG6zlpaedS04kAun1z7VPXKLAKK7Go9aNKqwuHwyW6b/iLwqJ4+RGAbMAiheZHaB0IVaRBYxxvpkkeIVA/0YRS1jdiGFzAldv8bjWkLfArcZARAiWGhh+IQug74VByR9q8Da+k2yVhwH8JP4mTqUkQuELtK3hvijwONCHI66dBd/3EZGMGWQteJRIlhb8f+Jd0jeFFhS8c1bBiI2xQn/X664IihJAN7WNeIPhPI1vapMWhHJRKJ4gd4Hzj3LuKpMlREUGIu8wlY4EhuTHELSh6GEsLzF/Tt0jU9pcQvBRSs0Z4v7X9/YZtP5X93Elq3rfxFZ4g4dAtdA+rSc8IBiKZ5owhNNeKI7xAhBgsBf3KFDsJCAv0VJaQK8vQJk1iY8gFAgqA9s2rMIwRIFMgCzWFGmKuBvUQi8R1CwihokI/wOBaFIPKDoKev3ltaDICOUKQjseZJQwF8WoQD3YgEcBMnA6iTloAdJQSDxAOUcSg9Q2hVFRUFGWNiPEiQDEgpMiAWBFX8tnMIC8RvQfQLxYexi2YCZEHpTUwOgcQFqB+CcIq8UEcN1obLiQNT9CsT+2+X5eX3cpaCCIBWSkoNl5EYb0pe4IM14v5aW955JC8nFeEpwL+f3HBde7PmU4qTHxNH59kBjXMwjAG8NdjtU+0MDHOi9q35fzzDfFKDhqvdR0IIe2b7h4HmvRGPrakrTSRybwDKOg5Gqi0wKuQwCe91F5TFFrjzDPbvcgMpf49f75of5+g+Vu09Jur2wcHUdSSXuU5WMtHSC/rHeqWpT4wJIqgKNY79PWxyuNY7xBTLALWGyiQajX7/Zp+qmjYvkMBXHFplqnffHVAizd00vi5rL+3OqFVlL7eYHhKIhDAurQ/OAq8c/VA1TWIk8DDgvqrC0PnJeba92rYfLt+3m9KItv4V87MPAMqjR2y4Pf1wftqufenRhnfowEIwQPvBGrqOf1koeXcr9Pww4KKul4t7zyE+X46zxnb9yKdo74OitFm+k59X22pbWwzZyWESjcFxcMOzzarOdhaz1yK0cGbFqWLoLzSNvL6cXrXcuNzVszOGWT39g3Pm2L0c9utzoRkTxTfORuz6uXt2pLSyoH9hKvgmtfGR8Z273cngkA2HpIY/hjcktarcDYrrKMPlwh35dv+6PP9/vfHU4rHdPZm88OW0GBI1V84HtRV7q2+rxj8NxfZpt207n1XarLyeXLcKwqvnAdrPLF6z0bhkQb930LJeNelw/7ne79eN5dZ41h7PXJNduje2m+cB2gytYe8MkVzDZPM0HthyMf7JtdTsZcQ3ILKuPrOYMatkLndcHxtVN9ZFXv39zlnAvpwvEo0KzVCs9jn46r75nQzdyaGRpzQeW71Wre3V1FDrN//vmfM6u0sqrIDpvlq7kS+ar1fpkraLlaslo9XodDfStfssR77y/bHbncXU8rlLlbmnnFQsOaPtAbbgOi4+Bt1XaR2tdKz+2fOhAkA94zPaX4GI5OlGg8QPO42r2sU2bqa75agiVn0YdV5uttgZ01eepFUl9l0LHj5M5aea7MvGCuRjDfuLUqOIiWMksIKFEBOzPzdnmzp2lEffUiPiko2yG0TmVbTqrot+nN3TnNtT0cN3+2ChjIZ5FO4FO8hOi+aLPyrmkHl2SQ+sbNl6HysyUg2+nKlTTIX1QMBy9jv+6OZ3UDAqdO4XuzkdthNC34kCoWartjYyCTVsUviD1wIYMu79SohgtK6BnRcOIHH02VUTTJ+cr3jPdoGoRwV9shKMywrJ1y5IS9Tuo1cFinM9Yjm9X73SugHyd103sthZbTgYPM1cDE+sgK186d/5jnSbetbs/t6JcX1rYP9baZ6T3XkSh8MSOaayh2pdbp7LlQVpiZQWIwtaw1h4Ide8e2vhCsXViD7nRA7rnFIQ/haUppXcK5qbn4+b7d1VnDG6VibwzrkVbPttgpRnNgdb3c77dmKIYuPsjKAaCWZCtiMJ1VFhX+T4+CwdNNEnqxp3BOK97vJWKTaVC3fO4eX1V0UfnQ9ooZY/2e2e0n9gkmgpr/qKUJ3zfjNuWD+4+pk88/3v80HoD5FrEDnUbGxsC8gKQR0RpCLd3A64ALFHAng4wSQ00iQnK7wGi6CHRjxy9RvqcwAYMYAD23HJreMJ4U5PvzWwsWq2lm1aQ8+12j8oSpq6CKDtAICoq7t8P+m9jpnbGtWviDoFu0kFINyjwS2+XSY8Gv65Omw20mogLmQrqKsozaXD3AqFJIbgR1L4qXSKzgvf1marCK/m5W//jvN49HfYbVbYapHUqwEG3Bdl0WFu3iTQKZhIZepz7ROVN6ZMumB4/j+vT+vhDsVRk8DigKRkMJo056jm1ahxcqnHsMZujXHa79VYnccEnwcZ4zhzsLWnWdJVbGkCUSwCXoTolWvtdgevwtk/9zsMwuUJHfUHh5+chdQYVnY5ALN3tLoG2IcQGEMUaqt8hADgQpnwzQU4MqagJSsnMkgVwixAkKiQIe2u21tF4KthK/Tzokpx3QsdHuL0DKl1FiGBs7xJVVRMXRzwP8ApS5JNoEApd4YoF/4v59r9s199Xj+l2FSY/aeCB74cV13GPq6SxPkwekjdQiKb2p+jPQ7pru31EyCwghsuqJYmiY1t+kNPjcXNIt8XRtcKC8264GTQ4o24eV9vU/25y2c5ZVOqNqU8DVyFgJJjFP+UvT0njdhqkm3pr9ESkIl5c6sAtimCIUOySm6XEPZHBQeNTHCGWACm7xj0wToVy1OXp8P++bNLg3a0AlSocc4G07lN9ERdvQUuBQPN4c8gmJOJ9rbc1Q3SxrgA8JNBX6GOyce/v5fOF+zatUrm0Syn+j4JITfoVcFQIe8PgF2wv6bHsS5jkkAFzuJ32hK+nyU1y6DFZcJa8zC2r3f5tu376rgnsi7NLZ+Afq81W3/C8XfnJJE85LpTCFb7tLzvdSqonNwSOqxogX9qLV5hIREwGoL/gURM6XwHgsnt8We3USwxt69I+frklMj/082aXXqnzLSaBgItA3KbGD00yFoYO5Ht2KCZSyVSisQ3ktSDPWVjonAtGqm2B2Tc/ecqoH++GlaIollXHkBSBnAGcuAxBjYaBKA0U1tbT+nh63Ct0Qegb30gd3TdrtM1jureH3ttAHQQZK02lm948bv6++q6r8U3vN/f8BtP7cJ5zcAJM6/LGI5Tx7aGvGIV0vVWj+0qKLI6PIjwvu83z/piWtUY3aAbsfEJcC4nE0LaFR9z8ty4vNW4CvigYUtTJec0KFjB90FHxSo4UynwJazjW1/98eigFxPqGB3DpBSp65OBOEMEbtcZJQJW+ZlU8PeJsQo1PmAVBYsLPxS+7+VROoba1xPOSUdAN1sKJZxyFh2mx1BBrjzCfqWPBZ/Cy265PacmpGb1QCoS5TCuLMH7nIps/Uj9Dv0sXk2DKo5FINRWC0d1287rRLYrO7VeD5RYZH/agx/Xq8SWL0XpXS1o2KkhUI6WbLQvC2Qsf57heJQ/k19m5Fwa/KPA+YPY4oy9iuKjJNA97hX7p0LB3Mwzp61k6b0+r5/XX/fOzToI6N5Yth9unx9VWzZF2EFAlodtkdXnh/CY5c4yWEBmBoyU4Ga2vs3DZnTbfVfg3c7q8wwehQDm3IfPio1nO7nRYP26eVYNubL3ZR72fUr64O10Oc8ygHtSF0DBnyMtmqKlHFoh9xfMmSdiaxp022G5Ylby95bxlk6vB5x7IwrSPRm8wBEm8rilxvEAryfPiNSttZD3xVaoWGG0szDeYSry4wTllWYBcwLOwc3R7n3CiZsMrKz4S5hPfcBx5zEwX79F+8TLZFRMOeYLEG3+JTpnohZEcSZS2IVooXj/JbvwQJIkRv8gQEgu2TGMa/KV7+H5cPaWlbt+qPEZ6mI0itwKPP5M6B0veMDC9vX6agcZ2Sx9PRn4/MmZ4VmILpRsk09Ze6HblCBHpZIV/R6sIwzNKejdRGY5dSIoikahHYRBDC5lfkkbSdE+hV4tvW3H7fkpup/ZCXHwCMPvJdI0NFvsy230aWkxuU0gUT7Gml0ARL4dDmtv3bsJJF4J28Mc7pkgcWfZtOYFum0zcvdseMzo+RnxBQsoBZYPbfxpFTx1VSm7UUKUnYB4eqKEGXThgPTeGcIlQhKNSByQyILPWZzcLmJEwTvM3BAX9CH7kzWzvM3M8+6ayILRywx3gzqLKvz1iqtDqF1JQM4FNBA2BtGAKNz84PEMHBHte/ApY39JLl9IUVF1kZoNzRhoKWeIOlFsoSzXw/7PEGCwJho/LLVgiC78jmWAJJfyO7IEldmBpDBKBQjAv1ds+Tqq2qNSochSyvJMq00/ecY3LYi9AvZtCKnSOFfOnRBW2EKPitOTJGPhL+OmRhk6eM1MeRZFMSu9tIfE7rZ+uXLykaCCl3gCyq5s+T9ScMZ9V+6bzu0alLPKkINJV4w4DLnCJ4zsPeP3zpKPVSE2tmi6iFOg2uJ53b3we8YupCBYm/2QoHPInjVgaXRb3YO1shBtijn5GrVHOas5lRN8LT6n1aSbhp/5FIhZ7oI15GJexyi4n3QyvO7e/VUD/Cii5MDI3IOLWgVHe6vmZyls4VGrubM0CaJ7jQrLt1Xxp5+ekDhG8HRJpXdMikaSuFGBiRtEbeWZNfQkqmARRrkZgrwvXzp2P2/Xu+/klXdx1okRHnbdq4SzKJGBD8PeygoXD5bJRVadGTO+JUwtoWkzKMBi8O+EgIv5EPJ9fA7tsnv5+WB2V2vPoMtBwpTi+N6olGir2Vmib1P1CZuiPOt3+3QO7pvq63Uqx9K94aH9Ge6Uf3LLtj/rLj5AmB53ffrT2DL0/mFdRl3Bbah/oNhlSXSKy5CuyZLS6+6/NfIxGvakCMfJX39Rqmy7GQfJdiVttTaxh3PubmD80UNvDyYqGeU2OWMdcAJN1pG8xY16/TXK9cY2QDk3tkwwMOQ2CBgtyGvFKKuRwrSEpwII6VOgnNxC7Da9P6Mr1JBX0LKs09VszYaXZkXXlIr9aCg/VLE0Y2oBmNBDy+zWXWFmfLosBHLUqK53yl91qm7bLB7cHwXp9FgQ0cHiNXwk3hPvB7dD2MXOB/SuMfFhlBY/Qlxf1HX2IORbCmqitIlumZwX6HqIhYQRFs3pAnOjCMBRcXDoyYtLRkVEIV5pylZ9c5RDH62dXObg8PrfeIYPqP6/yYcgy/jsZO7HuLpwUiB+kuB6rEMsk9Sw0/adXeujDTld1cod9SvN1q/vyujr+oXXRXJDpIuO667gpCXT29JOUKKzPbpk8x3XIJ5XR+DAtrL6avRC84cFHnF4vkyLrexm4x1UICWSsqJGweuTENGkIyD6DBYoKmVM8TwLIQWfyy1PcXSeAXitus2yLMuNkyRfbovCQt07vnCBiG4oKKgGmqrCWxuSm0DgWUAEr9P45srLcKJlOxHl3C3Xqf6yOjy8rNeMTJ5F89kDHXMweAzeQBwIcQ0AJrFNOnCw8CUbuubiTqsnuxHvEL982u1XKvhtdel9Tc54U4tXjRjdS3Coe0BSjnt7yXVT59Byokuh7mV1vRQFMK7+iSE5uwR5iHjMd0iX/aPkRfzg1d700zprI+Yjr49PmMd1a++BthJTKJqqKQsEFfNXtMmm9xxcN+LMM6p1by80g3LyvUJuedeZ0vtPKU6qLWyNsyfp4q30M2xDJDSDyxZB7RBg3IuyasNwn7KwTisUBx3dg2Zi4rs7YeAA0lts3NUD5X9F7Mj3soCNRgDbd3tfX183pdXV+TMuLyfFeV9gt+4WKhbfB0wnXuO7BMp/3S40/NqnHR/DtjQv9Bi2K2/h8AWry45jDphP3wgE/UKKMLx8FFbD2UEcJJFdQqQURPrJEedjj/6PIv6jGiDmyQNT3TjVGdyzaQmU4psP4gESodb5Q0I/NaaP7975OUG59jG5lqQc4X+Ssoj8X6Q3m3u2VWwO+rVKkfCNL3aGbjAVNVOCAegGknTJFB7h15Jl/7lQS00V4hnIPEnhBwVKkflQu40CUoJnmdUzuILZgGGAK6Bq2DCZZrc9fmt/s837WMksOayHnIrwhBbbRCBH5XvkWQWDqeau8/cY9nm+3NS+Ip+NqkxwubWJZhPiwgRpBeYech9bqJI0Uz8WLDoM1r1CQKkwnmrHGPAfWq3RvAdUeJRN6kZTnTBFjmrgksCCAJFybppaZdLe3lcuEamFKqXIKOne1UJ1vvkraqg1uJEIIDnZyuLUQ73X300BupheInxz2GwhWwDnAjVb63X74M2Fpi4gaspLGK0ohdJNrsE52bomJ+7baJku+c4NfcBYjH9EeTmUQPn+jFEu+rRSPq3VFt4XDEkgmwoOkcJakut514+vyCVVybF++1Pc8stpZptrF3VuyUH7w9LZKQzo3nRJFijgqohHCHG8/2Iel6PptwYCyKVDxKEdjW68g3sY6iRA1QnlWWEQztkPm0qAUK+Tz8Fak8xLyGq0tel30WHh8dlxNhuuZqJH0JcG/o2yRcLro+aIW1F3eVqfH7XqlciMB6n7oWcfFx7+3V57Xx7nWmGTDgwsBjmGpcTqBcps7hMdtb2D0O3GvMzSoRH+AdX+DAIGqccWq8cccvd+UUuzkqsoINGcbsvyuhOx7W6vNzPVIKG1m629pnN261WAPLuQMe9o//rFOI+JER8NALEPNLM4CuA+iVJoxCUTTLJ6ahkcgvP3QIkP0h4ZYDIMKdn0GIwHdM9eTj2SFOM1RIxhjfDbGiTvG/lfu/CHc7AxCAwMDQMXrGt1ase/Q540V4sXEByKscrqDaOOIlk2RAqFx/k57pkyLEE0ZtmKIAItvKJDT1SD/EE5BFpGiYakERQ4fDYRJ/7x6PO+VEFoIUuAXMxNTC5u2sNaCTcFSBWncQRr5Dq7w44ggsmIP3Uf7v623aYTXuFRV1Pxz2WR75GNK4XXVPwlNbIRSq1tCfHtJm1ONLxIcs2h0gNnlZm21ZhptHf5IheFLzq4ggWoFRbL5ftc/VI+ud9kzoDvxLkLja97No78ptaTaK5SNLEwWpsRL6obUuFFfTW8nFIE1BZOlM7QRjPQotssQJABTAUslpPl0fMUZkNEseQZo4qXY8RHJ33YHmp3G3AP7e85KA5FH4CVEqJpxuSWzw9LkBEo7TKwaxn8nLESxsbNqyB6MmQ8CLyHjJkRLom2Yae/YGspCxZMBb55pfrI8jF35ZguTdo2QmptYuLf4fch/CS4WRx8t/sThpgTjrr+QrFmWhkzghGkhEAyQGakHjGLQbWscaeKIBGpAmO4JhWrUSw1GhUgstKrA9TgETJmCEJMfF76sd3p384XC8nRArBojwi91ud5e1AkzVN7RhQSTjERmcBa4sMBSfHvJnOiaygf0xkmLCzMnjVsKfJhjcofG3xjL1FKOlL9YOIrPEkA0/JN6eqmDKuNDHIQI9YUgqvEON2kHqhncVEckU5i17z9EIT2mDpB1zggQKIECK0ZdFOIuAjZpbrmCTrxUZp6ixkRbEDBlcPArxuFY7HJTiH8hQg8ShoMfv75sVNfFhQYJM+vbD+wNKNwQMhyhj0jn4ktlOjfgdM4gi/FzTTGbYaeMGn+c1Kx3ipKNUZ6R/TGUtJkcoTxTTo7IK5roOIe2n0hr8Hla7MotkopSDfRlr6msrlgviiUCpxlR2qiRmFboiECEyLOB2ROnm2FlK5jqnII4GU0r1q6w6PcpV8OtgCL+YLiQVQrjXOSSh2d9/AFPJmEoH3+gjC8UQjjNuDtiEgqhFxzgYq1SeoQ1PbzQhhVPHtudH4BvUj2G2Sn4F6g68zCnFGsyubUgpkHFVGbzlBKTXClHHzxkaRpzNRt4okCfjIJe89smTWRD46pYJIudYS2DVJKd2WZHaApJ+oHsObq4o2YzomYjfNUN4myDOdQI/UMedYUHTo1sBpd0sMx59G2z01Ly7q4EcnuO2Y7Rr32JNGCrXV4edgCcRngEgHi4lvPDg0k9WXwixaryQybQhNdgRdJ0QKb8bHhx7cSvWQqZN+kiqt12jUCp6Y0QmFN0hnE6T0i0kU1nuFTDqTjTbyENASd4nl/H/5QpunQxuzEiLyq65NIuQuQlr47W+HI4iGv2Zmtq7WFDoTghy0zy+6Mv1FjFH8wJNrgEncHQYSKdoecvi8b8OXQG7FkmsQGj3GEQfpzsgFFM2gPGK1PwfoEKQaaxRYrgeGVK38eJEiRZWJQJAq+sYgWuQV4z7m9pViCq7jpHdUsPCN9ZUohvyBSTstlXHyc7UNbBoj2gMEECBO4ZLRdZu4d2GVZUQH0uQIE99AhQC2Kg8877st6mEonu7oucHTuYyLknH2V9vcp++3Rcny7bs4LWSaCl4fh4pxtwG1kJmrp4vZJt0TyWgji5Bz62U74JCqIVVazFDC/oWc/3sr8osJ2vXInIilCi+AMZaqwRxG9YBE5l5ec4Jcnf4PEYTzwefVHDLG7WaF9bpDqeb4xREHuw0ycwfazLYJ+UlLv4HTqSe8o4LqsgDF1IwSgRsbFV3iXLBDuwhSA0Gu6SVqWqGEk01QtqFP6d732gFUpqF6wUZxCw1hO5zwgIaWeP7YZ6ey36d+Zt/Icy7HMLkwtoCPN4yte4kWbJ6BJVfb6LFB9RxA880UeehEP+Ari7L3sVF7XZFmSTYx6fMVKTFh0KQJixZv2WMkOjmlfmfR43Z6Wm4xckGR+aBjwTzzD/k87X+/KjTSdJcPOtWPMdae7NMgMO+lKXcL7g16u3dwr8rxPLUhrTobgF3HHo63ji3Tmk5mt9U9je0E9utedW3vTH2nw3DDySJRCnx0Lv7TisZQwiIaXAYy403n4fVxPeglj+D9gsw0Kb7euYz9v9SnmnSG/cB4TSS/3COKp+fgFqYKsBvJIFo2bGMUH66bFpsZDvF8dUTx+k+Tr2bMNcuTTmmA4p9CGRhwQQJxYM+d9vh6sjwct69aRtketEnqtjtPqx8XOO28yJlkMDdzIsjSrnofXdSiQ+Suhs/Vou1jFywB+gHA65iTGe9+zXBhosEoiOGqGQp0AiABXE0BaqzdeHUlZwlWvNWbOl2xcAevOg6ix2NUoJ5Kj7/KyyKwCEv3y8FrC0AvA50gZWjv850gZ5Fv9Z0gZZni7zaqxIOyP+eB68LPstqKpfZ9tVuOu8ek10tYOUK52/AesdrEB8YF/Jzb6CKM0+4NOF9gM7Sm73FSTNELMgwBV+4aBq1xaBAF0G2w8EArPmWjqkiAHIyWg/EAP8c33ca701sf9jtt84o4sG1a6cjetz5eB2uNyNJE40OLiguSgZ6HKqsdXB4BdlJVFCUsmD93znFHYW2oJXGhszA+8CZYGOS9RHESpApYu1BpDXtvbzsZ0JQLXgt/R2+vtpvXv6P0+r80rdk2/0w7PQP6xOX95OipLbu1DJexJbOYyooIulrjuHO78gWWm978J7TOx56tZN/oEAFPBrHCY1MVSiNEGosPu2f6bI+M4VakALpyUgEFMXXQjRW15U+/i5v6Rful1CvvZf5ryBpWQE723GOyet5vaDDRBuRvHQi3MIFTxsHHFmU4sj3i541UAJNzFKonBXTjeJcRbM/9DL6eIlrE4XsCrxP8WJCu0qQaqMLcl4P8CQIHpDwARSP60HhTmuQHwS/UIiHOlM8d8JzAs755QCIZiHmiUtf7HXjiIiyirUNjGZNy1bTwbLkCa/mNqTcGUiVZTYFGw6rGexJYLpQRWpmkGc1RJhfQTZApWgIAYtNaFg9kjaf8H51jjhe99zu8Df++d+p5viIvzo4s40xo8wCaVtnLHEgE55QMFBck8NDCuQsRyX4XGjr+U9ipKHHSoZR/YYpFsWnf7zdE49LmV5ZooJZ7gpBmhaQcw+Y0oBIMkAPDBLi4JKCCkX2qQJgB6baPgSomQdI6pwQ0RkT/Vff3s4bA7r7Wa3fvi///lf//M//wtKRm/1"; \ No newline at end of file +window.searchData = "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"; \ No newline at end of file diff --git a/docs/classes/_questdb_browser-client.QwpBatchTooLargeError.html b/docs/classes/_questdb_browser-client.QwpBatchTooLargeError.html index 0e0eebc0..00a368bd 100644 --- a/docs/classes/_questdb_browser-client.QwpBatchTooLargeError.html +++ b/docs/classes/_questdb_browser-client.QwpBatchTooLargeError.html @@ -1,7 +1,7 @@ -QwpBatchTooLargeError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • RangeError
    • QwpBatchTooLargeError
Index

Constructors

constructor +QwpBatchTooLargeError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • RangeError
    • QwpBatchTooLargeError
Index

Constructors

Properties

batchSizeBytes: number
maxBatchSizeBytes: number
message: string
name: string
stack?: string
+

Constructors

Properties

batchSizeBytes: number
maxBatchSizeBytes: number
message: string
name: string
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpBindValues.html b/docs/classes/_questdb_browser-client.QwpBindValues.html index 4c564204..b5786f66 100644 --- a/docs/classes/_questdb_browser-client.QwpBindValues.html +++ b/docs/classes/_questdb_browser-client.QwpBindValues.html @@ -1,7 +1,7 @@ QwpBindValues | QuestDB JavaScript Client - v5.0.0

Browser-safe typed positional bind encoder.

Setters must be called in ascending zero-based index order. SQL placeholders are one-based, so index 0 binds $1, index 1 binds $2, and so on.

-
Index

Constructors

Index

Constructors

Accessors

Methods

Constructors

Accessors

Methods

  • Binds a typed NULL.

    +

Constructors

Accessors

Methods

  • Binds a typed NULL.

    A null bind is exactly type + flag + bitmap. The only types that carry anything more are the ones whose prefix the decoder reads before it branches on the null flag: the DECIMAL scale byte and the GEOHASH @@ -40,6 +40,6 @@ the server read that word's first byte as the next bind's type code ("unsupported wire type 0x0"), or, after the last bind, as the trailing queryFlags varint -- silently dropping a requested dictionary reset.

    -

    Parameters

    Returns this

+

Parameters

Returns this

diff --git a/docs/classes/_questdb_browser-client.QwpBrowserSessionBootstrapError.html b/docs/classes/_questdb_browser-client.QwpBrowserSessionBootstrapError.html index a5bf4387..194e17c2 100644 --- a/docs/classes/_questdb_browser-client.QwpBrowserSessionBootstrapError.html +++ b/docs/classes/_questdb_browser-client.QwpBrowserSessionBootstrapError.html @@ -1,5 +1,5 @@ QwpBrowserSessionBootstrapError | QuestDB JavaScript Client - v5.0.0

Class QwpBrowserSessionBootstrapError

An HTTP rejection while creating a browser qdb_session cookie.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

cause? closeCode? kind @@ -17,7 +17,7 @@ url?

Accessors

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
responseBody: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

-
tryNextEndpoint?: boolean
url?: string | URL

Accessors

+

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
responseBody: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

+
tryNextEndpoint?: boolean
url?: string | URL

Accessors

diff --git a/docs/classes/_questdb_browser-client.QwpByteReader.html b/docs/classes/_questdb_browser-client.QwpByteReader.html index b6eb8336..a1238217 100644 --- a/docs/classes/_questdb_browser-client.QwpByteReader.html +++ b/docs/classes/_questdb_browser-client.QwpByteReader.html @@ -1,5 +1,5 @@ QwpByteReader | QuestDB JavaScript Client - v5.0.0

A bounds-checked, runtime-neutral little-endian byte reader.

-
Index

Constructors

Index

Constructors

Properties

Accessors

Constructors

Properties

bytes: Uint8Array

Accessors

Methods

+

Constructors

Properties

bytes: Uint8Array

Accessors

Methods

diff --git a/docs/classes/_questdb_browser-client.QwpByteWriter.html b/docs/classes/_questdb_browser-client.QwpByteWriter.html index ab66e6a3..2bda8fb6 100644 --- a/docs/classes/_questdb_browser-client.QwpByteWriter.html +++ b/docs/classes/_questdb_browser-client.QwpByteWriter.html @@ -1,5 +1,5 @@ QwpByteWriter | QuestDB JavaScript Client - v5.0.0

A growable, runtime-neutral little-endian byte writer.

-
Index

Constructors

Index

Constructors

Accessors

Methods

Constructors

Accessors

Methods

+

Constructors

Accessors

Methods

diff --git a/docs/classes/_questdb_browser-client.QwpClient.html b/docs/classes/_questdb_browser-client.QwpClient.html index 783d75be..ecfc1d22 100644 --- a/docs/classes/_questdb_browser-client.QwpClient.html +++ b/docs/classes/_questdb_browser-client.QwpClient.html @@ -1,15 +1,15 @@ QwpClient | QuestDB JavaScript Client - v5.0.0

Browser-safe facade owning bounded ingress and egress connection pools. Borrowed handles are exclusive; separate query leases execute concurrently.

-
Index

Constructors

Index

Constructors

Accessors

Methods

  • Rejects new borrows and closes idle resources. Borrowed query sessions are +

Constructors

Accessors

Methods

  • Rejects new borrows and closes idle resources. Borrowed query sessions are cancelled and closed; borrowed senders retain ownership during a bounded drain and own their teardown if they outlive it.

    -

    Returns Promise<void>

+

Returns Promise<void>

diff --git a/docs/classes/_questdb_browser-client.QwpClientClosedError.html b/docs/classes/_questdb_browser-client.QwpClientClosedError.html index 40f18df2..382c80bd 100644 --- a/docs/classes/_questdb_browser-client.QwpClientClosedError.html +++ b/docs/classes/_questdb_browser-client.QwpClientClosedError.html @@ -1,6 +1,6 @@ QwpClientClosedError | QuestDB JavaScript Client - v5.0.0

The owning QWP client, or one of its returned lease handles, is closed.

-

Hierarchy

  • Error
    • QwpClientClosedError
Index

Constructors

Hierarchy

  • Error
    • QwpClientClosedError
Index

Constructors

Properties

Constructors

Properties

message: string
name: string
stack?: string
+

Constructors

Properties

message: string
name: string
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpDurableAckUnavailableError.html b/docs/classes/_questdb_browser-client.QwpDurableAckUnavailableError.html index 5f19b761..f8bff69d 100644 --- a/docs/classes/_questdb_browser-client.QwpDurableAckUnavailableError.html +++ b/docs/classes/_questdb_browser-client.QwpDurableAckUnavailableError.html @@ -1,5 +1,5 @@ QwpDurableAckUnavailableError | QuestDB JavaScript Client - v5.0.0

Class QwpDurableAckUnavailableError

A requested durable-ACK capability was not confirmed by the server.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

cause? closeCode? kind @@ -16,7 +16,7 @@ url?

Accessors

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

-
tryNextEndpoint?: boolean
url?: string | URL

Accessors

+

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

+
tryNextEndpoint?: boolean
url?: string | URL

Accessors

diff --git a/docs/classes/_questdb_browser-client.QwpEgressQuery.html b/docs/classes/_questdb_browser-client.QwpEgressQuery.html index a6931eed..2e437ce9 100644 --- a/docs/classes/_questdb_browser-client.QwpEgressQuery.html +++ b/docs/classes/_questdb_browser-client.QwpEgressQuery.html @@ -1,5 +1,5 @@ QwpEgressQuery | QuestDB JavaScript Client - v5.0.0

One QWP query/statement and its stream of materialized result batches.

-

Implements

Index

Constructors

Implements

Index

Constructors

Properties

Accessors

Constructors

Properties

completion: Promise<QwpQueryCompletion>
requestId: bigint

Accessors

Methods

  • Waits for completion without changing the query lifecycle. A finite wait +

Constructors

Properties

completion: Promise<QwpQueryCompletion>
requestId: bigint

Accessors

Methods

  • Waits for completion without changing the query lifecycle. A finite wait returns false on expiry; the query remains active until it completes, is cancelled explicitly, or its configured query deadline expires.

    -

    Parameters

    • timeoutMs: number

    Returns Promise<boolean>

  • Internal

    Records a batch dropped unread because the consumer has retired or the timeout has expired, and returns the credit to restore for it.

    -

    Parameters

    • creditBytes: number

    Returns number

  • Internal

    Called when the timeout expires. No further batch reaches the consumer: queued ones are dropped. Returns the flow-control credit they held, which the server needs back to stream on toward its terminal.

    -

    Returns number

+

Returns number

diff --git a/docs/classes/_questdb_browser-client.QwpEgressQueryAbandonedError.html b/docs/classes/_questdb_browser-client.QwpEgressQueryAbandonedError.html index 068eed82..7fd588cd 100644 --- a/docs/classes/_questdb_browser-client.QwpEgressQueryAbandonedError.html +++ b/docs/classes/_questdb_browser-client.QwpEgressQueryAbandonedError.html @@ -1,7 +1,7 @@ QwpEgressQueryAbandonedError | QuestDB JavaScript Client - v5.0.0

Class QwpEgressQueryAbandonedError

Result iteration ended before the server completed the query.

-

Hierarchy

  • Error
    • QwpEgressQueryAbandonedError
Index

Constructors

Hierarchy

  • Error
    • QwpEgressQueryAbandonedError
Index

Constructors

Properties

Constructors

Properties

message: string
name: string
requestId: bigint
stack?: string
+

Constructors

Properties

message: string
name: string
requestId: bigint
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpEgressQueryCancelTimeoutError.html b/docs/classes/_questdb_browser-client.QwpEgressQueryCancelTimeoutError.html index 71e59651..df7c0dd0 100644 --- a/docs/classes/_questdb_browser-client.QwpEgressQueryCancelTimeoutError.html +++ b/docs/classes/_questdb_browser-client.QwpEgressQueryCancelTimeoutError.html @@ -1,9 +1,9 @@ QwpEgressQueryCancelTimeoutError | QuestDB JavaScript Client - v5.0.0

Class QwpEgressQueryCancelTimeoutError

The server did not terminate a cancelled query within the drain deadline, so the session gave up on the connection.

-

Hierarchy

  • Error
    • QwpEgressQueryCancelTimeoutError
Index

Constructors

Hierarchy

  • Error
    • QwpEgressQueryCancelTimeoutError
Index

Constructors

Properties

message: string
name: string
requestId: bigint
stack?: string
timeoutMs: number
+

Constructors

Properties

message: string
name: string
requestId: bigint
stack?: string
timeoutMs: number
diff --git a/docs/classes/_questdb_browser-client.QwpEgressQueryError.html b/docs/classes/_questdb_browser-client.QwpEgressQueryError.html index df28e527..d7f324f9 100644 --- a/docs/classes/_questdb_browser-client.QwpEgressQueryError.html +++ b/docs/classes/_questdb_browser-client.QwpEgressQueryError.html @@ -1,7 +1,7 @@ -QwpEgressQueryError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • Error
    • QwpEgressQueryError
Index

Constructors

constructor +QwpEgressQueryError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • Error
    • QwpEgressQueryError
Index

Constructors

Properties

Constructors

Properties

message: string
name: string
requestId: bigint
stack?: string
status: number
+

Constructors

Properties

message: string
name: string
requestId: bigint
stack?: string
status: number
diff --git a/docs/classes/_questdb_browser-client.QwpEgressQueryTimeoutError.html b/docs/classes/_questdb_browser-client.QwpEgressQueryTimeoutError.html index a444b20b..383dd39d 100644 --- a/docs/classes/_questdb_browser-client.QwpEgressQueryTimeoutError.html +++ b/docs/classes/_questdb_browser-client.QwpEgressQueryTimeoutError.html @@ -1,10 +1,10 @@ QwpEgressQueryTimeoutError | QuestDB JavaScript Client - v5.0.0

The query ran past its timeout (queryTimeoutMs or the per-query timeoutMs) and was cancelled. Reported once the server has ended the query, or after the grace period if it has not.

-

Hierarchy

  • Error
    • QwpEgressQueryTimeoutError
Index

Constructors

Hierarchy

  • Error
    • QwpEgressQueryTimeoutError
Index

Constructors

Properties

message: string
name: string
requestId: bigint
stack?: string
timeoutMs: number
+

Constructors

Properties

message: string
name: string
requestId: bigint
stack?: string
timeoutMs: number
diff --git a/docs/classes/_questdb_browser-client.QwpEgressSession.html b/docs/classes/_questdb_browser-client.QwpEgressSession.html index 930e567a..a4d666b9 100644 --- a/docs/classes/_questdb_browser-client.QwpEgressSession.html +++ b/docs/classes/_questdb_browser-client.QwpEgressSession.html @@ -5,7 +5,7 @@ timeout -- may still be draining on the connection; a new query waits for that rather than failing. A completed query's materialized batches may still be consumed while the next query runs.

-

Implements

  • QwpEgressQueryControl
Index

Properties

Implements

  • QwpEgressQueryControl
Index

Properties

Accessors

Properties

ready: Promise<QwpServerInfoMessage>

Initial SERVER_INFO; use serverInfo for the current post-failover snapshot.

-

Accessors

Accessors

  • get metrics(): QwpEgressMetrics

    Immutable notification-inbox counters for this session's reconnect observer, the egress counterpart of QwpSender.metrics.ingress.

    A reconnect.onEvent observer runs on a bounded inbox that drops its oldest pending entry under overflow, exactly as ingress does. Nothing @@ -30,23 +30,23 @@ either, because attempt resets to one on every success: six outages that discarded eleven events were indistinguishable from a healthy two. A non-zero drop count means the observer is not keeping up.

    -

    Returns QwpEgressMetrics

Methods

  • Parameters

    • requestId: bigint
    • additionalBytes: number | bigint
    • replayOnReconnect: boolean = true
    • acceptWhenReconnectStarts: boolean = false

    Returns Promise<void>

Methods

  • Parameters

    • requestId: bigint
    • additionalBytes: number | bigint
    • replayOnReconnect: boolean = true
    • acceptWhenReconnectStarts: boolean = false

    Returns Promise<void>

  • Internal

    Cancels and drains an active operation before a pooled lease is returned. False means the physical session is no longer safe to reuse.

    A query() of the lease that has not started yet -- still waiting for SERVER_INFO, or for an abandoned query to drain -- rejects with abandonStart() instead. Left waiting, it started as soon as the drain below finished, on a session the pool was handing to its next borrower, whose own query() then failed because one was already active.

    -

    Parameters

    • abandonStart: () => Error

    Returns Promise<boolean>

  • Internal

    Best-effort cancellation followed by physical connection teardown for facade shutdown. Unlike pooled lease return, this does not wait for the server to finish draining the cancelled query.

    -

    Returns Promise<void>

+

Returns Promise<void>

diff --git a/docs/classes/_questdb_browser-client.QwpEgressSessionClosedError.html b/docs/classes/_questdb_browser-client.QwpEgressSessionClosedError.html index 61e6e066..065dbfe5 100644 --- a/docs/classes/_questdb_browser-client.QwpEgressSessionClosedError.html +++ b/docs/classes/_questdb_browser-client.QwpEgressSessionClosedError.html @@ -1,6 +1,6 @@ -QwpEgressSessionClosedError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • Error
    • QwpEgressSessionClosedError
Index

Constructors

constructor +QwpEgressSessionClosedError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • Error
    • QwpEgressSessionClosedError
Index

Constructors

Properties

Constructors

Properties

message: string
name: string
stack?: string
+

Constructors

Properties

message: string
name: string
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpFailoverError.html b/docs/classes/_questdb_browser-client.QwpFailoverError.html index 566798e9..acfb5810 100644 --- a/docs/classes/_questdb_browser-client.QwpFailoverError.html +++ b/docs/classes/_questdb_browser-client.QwpFailoverError.html @@ -1,8 +1,8 @@ QwpFailoverError | QuestDB JavaScript Client - v5.0.0

Every eligible QWP endpoint in one connection sweep failed.

-

Hierarchy

  • Error
    • QwpFailoverError
Index

Constructors

Hierarchy

  • Error
    • QwpFailoverError
Index

Constructors

Properties

Constructors

Properties

attempts: readonly QwpFailoverAttempt[]
cause?: unknown
message: string
name: string
stack?: string
+

Constructors

Properties

attempts: readonly QwpFailoverAttempt[]
cause?: unknown
message: string
name: string
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpIngressAckAbandonedError.html b/docs/classes/_questdb_browser-client.QwpIngressAckAbandonedError.html index a2e2576a..dd839156 100644 --- a/docs/classes/_questdb_browser-client.QwpIngressAckAbandonedError.html +++ b/docs/classes/_questdb_browser-client.QwpIngressAckAbandonedError.html @@ -1,9 +1,9 @@ QwpIngressAckAbandonedError | QuestDB JavaScript Client - v5.0.0

A recovered frame was deliberately retired without a server ACK.

-

Hierarchy

  • Error
    • QwpIngressAckAbandonedError
Index

Constructors

Hierarchy

  • Error
    • QwpIngressAckAbandonedError
Index

Constructors

Properties

fromFsn: bigint
message: string
name: string
stack?: string
targetSequence: bigint
toFsn: bigint
+

Constructors

Properties

fromFsn: bigint
message: string
name: string
stack?: string
targetSequence: bigint
toFsn: bigint
diff --git a/docs/classes/_questdb_browser-client.QwpIngressNackError.html b/docs/classes/_questdb_browser-client.QwpIngressNackError.html index 66e17907..630f7ebc 100644 --- a/docs/classes/_questdb_browser-client.QwpIngressNackError.html +++ b/docs/classes/_questdb_browser-client.QwpIngressNackError.html @@ -1,7 +1,7 @@ -QwpIngressNackError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • Error
    • QwpIngressNackError
Index

Constructors

constructor +QwpIngressNackError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • Error
    • QwpIngressNackError
Index

Constructors

Properties

message: string
name: string
senderError: QwpSenderError = ...
stack?: string
+

Constructors

Properties

message: string
name: string
senderError: QwpSenderError = ...
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpIngressSessionClosedError.html b/docs/classes/_questdb_browser-client.QwpIngressSessionClosedError.html index 25141a37..547588d9 100644 --- a/docs/classes/_questdb_browser-client.QwpIngressSessionClosedError.html +++ b/docs/classes/_questdb_browser-client.QwpIngressSessionClosedError.html @@ -1,6 +1,6 @@ -QwpIngressSessionClosedError | QuestDB JavaScript Client - v5.0.0

Class QwpIngressSessionClosedError

Hierarchy

  • Error
    • QwpIngressSessionClosedError
Index

Constructors

constructor +QwpIngressSessionClosedError | QuestDB JavaScript Client - v5.0.0

Class QwpIngressSessionClosedError

Hierarchy

  • Error
    • QwpIngressSessionClosedError
Index

Constructors

Properties

Constructors

Properties

message: string
name: string
stack?: string
+

Constructors

Properties

message: string
name: string
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpMemoryReplayAppendTimeoutError.html b/docs/classes/_questdb_browser-client.QwpMemoryReplayAppendTimeoutError.html index 51765611..73d4c795 100644 --- a/docs/classes/_questdb_browser-client.QwpMemoryReplayAppendTimeoutError.html +++ b/docs/classes/_questdb_browser-client.QwpMemoryReplayAppendTimeoutError.html @@ -1,5 +1,5 @@ QwpMemoryReplayAppendTimeoutError | QuestDB JavaScript Client - v5.0.0

Class QwpMemoryReplayAppendTimeoutError

ACK-driven trimming did not free in-memory replay capacity in time.

-

Hierarchy

  • Error
    • QwpMemoryReplayAppendTimeoutError
Index

Constructors

Hierarchy

  • Error
    • QwpMemoryReplayAppendTimeoutError
Index

Constructors

Properties

Constructors

Properties

maxBytes: number
message: string
name: string
requiredBytes: number
stack?: string
timeoutMs: number
usedBytes: number
+

Constructors

Properties

maxBytes: number
message: string
name: string
requiredBytes: number
stack?: string
timeoutMs: number
usedBytes: number
diff --git a/docs/classes/_questdb_browser-client.QwpMemoryReplayBatchTooLargeError.html b/docs/classes/_questdb_browser-client.QwpMemoryReplayBatchTooLargeError.html index a8d8c5c7..8006e40b 100644 --- a/docs/classes/_questdb_browser-client.QwpMemoryReplayBatchTooLargeError.html +++ b/docs/classes/_questdb_browser-client.QwpMemoryReplayBatchTooLargeError.html @@ -1,9 +1,9 @@ QwpMemoryReplayBatchTooLargeError | QuestDB JavaScript Client - v5.0.0

Class QwpMemoryReplayBatchTooLargeError

One logical batch can never fit in the configured in-memory replay budget.

-

Hierarchy

  • RangeError
    • QwpMemoryReplayBatchTooLargeError
Index

Constructors

Hierarchy

  • RangeError
    • QwpMemoryReplayBatchTooLargeError
Index

Constructors

Properties

frameCount: number
maxBytes: number
message: string
name: string
requiredBytes: number
stack?: string
+

Constructors

Properties

frameCount: number
maxBytes: number
message: string
name: string
requiredBytes: number
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpMemoryReplayFrameTooLargeError.html b/docs/classes/_questdb_browser-client.QwpMemoryReplayFrameTooLargeError.html index 7cb8d2a0..bc75b03a 100644 --- a/docs/classes/_questdb_browser-client.QwpMemoryReplayFrameTooLargeError.html +++ b/docs/classes/_questdb_browser-client.QwpMemoryReplayFrameTooLargeError.html @@ -1,9 +1,9 @@ QwpMemoryReplayFrameTooLargeError | QuestDB JavaScript Client - v5.0.0

Class QwpMemoryReplayFrameTooLargeError

One frame can never fit in the configured in-memory replay budget.

-

Hierarchy

  • RangeError
    • QwpMemoryReplayFrameTooLargeError
Index

Constructors

Hierarchy

  • RangeError
    • QwpMemoryReplayFrameTooLargeError
Index

Constructors

Properties

maxBytes: number
message: string
name: string
payloadBytes: number
requiredBytes: number
stack?: string
+

Constructors

Properties

maxBytes: number
message: string
name: string
payloadBytes: number
requiredBytes: number
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpPoolAcquireTimeoutError.html b/docs/classes/_questdb_browser-client.QwpPoolAcquireTimeoutError.html index 9cd37572..9c9365eb 100644 --- a/docs/classes/_questdb_browser-client.QwpPoolAcquireTimeoutError.html +++ b/docs/classes/_questdb_browser-client.QwpPoolAcquireTimeoutError.html @@ -1,8 +1,8 @@ QwpPoolAcquireTimeoutError | QuestDB JavaScript Client - v5.0.0

A bounded QWP pool could not provide a connection before its deadline.

-

Hierarchy

  • Error
    • QwpPoolAcquireTimeoutError
Index

Constructors

Hierarchy

  • Error
    • QwpPoolAcquireTimeoutError
Index

Constructors

Properties

message: string
name: string
resource: "sender" | "query"
stack?: string
timeoutMs: number
+

Constructors

Properties

message: string
name: string
resource: "sender" | "query"
stack?: string
timeoutMs: number
diff --git a/docs/classes/_questdb_browser-client.QwpPoolResourceError.html b/docs/classes/_questdb_browser-client.QwpPoolResourceError.html index 090cbc53..c0c392ed 100644 --- a/docs/classes/_questdb_browser-client.QwpPoolResourceError.html +++ b/docs/classes/_questdb_browser-client.QwpPoolResourceError.html @@ -1,8 +1,8 @@ QwpPoolResourceError | QuestDB JavaScript Client - v5.0.0

A pooled resource failed while a new slot was being connected.

-

Hierarchy

  • Error
    • QwpPoolResourceError
Index

Constructors

Hierarchy

  • Error
    • QwpPoolResourceError
Index

Constructors

Properties

Constructors

Properties

cause: unknown
message: string
name: string
resource: "sender" | "query"
stack?: string
+

Constructors

Properties

cause: unknown
message: string
name: string
resource: "sender" | "query"
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpProtocolError.html b/docs/classes/_questdb_browser-client.QwpProtocolError.html index c6256d37..6cdb18e8 100644 --- a/docs/classes/_questdb_browser-client.QwpProtocolError.html +++ b/docs/classes/_questdb_browser-client.QwpProtocolError.html @@ -1,6 +1,6 @@ QwpProtocolError | QuestDB JavaScript Client - v5.0.0

Raised when a QWP payload is malformed, truncated, or unsupported.

-

Hierarchy

  • Error
    • QwpProtocolError
Index

Constructors

Hierarchy

  • Error
    • QwpProtocolError
Index

Constructors

Properties

Constructors

Properties

message: string
name: string
stack?: string
+

Constructors

Properties

message: string
name: string
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpQueryLease.html b/docs/classes/_questdb_browser-client.QwpQueryLease.html index 1c6f94d5..771dbb96 100644 --- a/docs/classes/_questdb_browser-client.QwpQueryLease.html +++ b/docs/classes/_questdb_browser-client.QwpQueryLease.html @@ -1,5 +1,5 @@ QwpQueryLease | QuestDB JavaScript Client - v5.0.0

One exclusively borrowed egress session from a QwpClient query pool.

-
Index

Constructors

Index

Constructors

Properties

Accessors

Methods

Constructors

Properties

ready: Promise<QwpServerInfoMessage>

Initial SERVER_INFO; use serverInfo for the current post-failover snapshot.

-

Accessors

  • get serverInfo(): undefined | QwpServerInfoMessage

    Cached immutable SERVER_INFO for this lease's currently bound endpoint. +

Constructors

Properties

ready: Promise<QwpServerInfoMessage>

Initial SERVER_INFO; use serverInfo for the current post-failover snapshot.

+

Accessors

Methods

+

Returns undefined | QwpServerInfoMessage

Methods

diff --git a/docs/classes/_questdb_browser-client.QwpReconnectExhaustedError.html b/docs/classes/_questdb_browser-client.QwpReconnectExhaustedError.html index d2d64810..1c2384c0 100644 --- a/docs/classes/_questdb_browser-client.QwpReconnectExhaustedError.html +++ b/docs/classes/_questdb_browser-client.QwpReconnectExhaustedError.html @@ -2,10 +2,10 @@ reached reconnectMaxDurationMs, or an egress failover episode reached failoverMaxAttempts or failoverMaxDurationMs. A connected ingress session does not raise it, because its reconnects are not bounded.

-

Hierarchy

  • Error
    • QwpReconnectExhaustedError
Index

Constructors

Hierarchy

  • Error
    • QwpReconnectExhaustedError
Index

Constructors

Properties

Constructors

Properties

attempts: number
cause: unknown
message: string
name: string
stack?: string
+

Constructors

Properties

attempts: number
cause: unknown
message: string
name: string
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpReplayDictionaryError.html b/docs/classes/_questdb_browser-client.QwpReplayDictionaryError.html index 7032eeff..885117e4 100644 --- a/docs/classes/_questdb_browser-client.QwpReplayDictionaryError.html +++ b/docs/classes/_questdb_browser-client.QwpReplayDictionaryError.html @@ -1,7 +1,7 @@ QwpReplayDictionaryError | QuestDB JavaScript Client - v5.0.0

A replay store cannot preserve the dictionary required by delta frames.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
+

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpReplayDictionaryPersistenceError.html b/docs/classes/_questdb_browser-client.QwpReplayDictionaryPersistenceError.html index 39305b5d..2dc74c0a 100644 --- a/docs/classes/_questdb_browser-client.QwpReplayDictionaryPersistenceError.html +++ b/docs/classes/_questdb_browser-client.QwpReplayDictionaryPersistenceError.html @@ -1,9 +1,9 @@ QwpReplayDictionaryPersistenceError | QuestDB JavaScript Client - v5.0.0

Class QwpReplayDictionaryPersistenceError

A replay dictionary sidecar rejected an append before its delta frame was published. The reconnecting transport has permanently switched to full, self-contained symbol encoding; retrying the logical batch is safe.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
+

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpReplayRejectedError.html b/docs/classes/_questdb_browser-client.QwpReplayRejectedError.html index 9466466a..94d4ff0e 100644 --- a/docs/classes/_questdb_browser-client.QwpReplayRejectedError.html +++ b/docs/classes/_questdb_browser-client.QwpReplayRejectedError.html @@ -1,8 +1,8 @@ QwpReplayRejectedError | QuestDB JavaScript Client - v5.0.0

A replayed ingress frame was rejected and remains in persistent storage.

-

Hierarchy

  • Error
    • QwpReplayRejectedError
Index

Constructors

Hierarchy

  • Error
    • QwpReplayRejectedError
Index

Constructors

Properties

frameSequence: bigint
message: string
name: string
stack?: string
status: number
+

Constructors

Properties

frameSequence: bigint
message: string
name: string
stack?: string
status: number
diff --git a/docs/classes/_questdb_browser-client.QwpResultBatch.html b/docs/classes/_questdb_browser-client.QwpResultBatch.html index 2006b82a..f383e9ce 100644 --- a/docs/classes/_questdb_browser-client.QwpResultBatch.html +++ b/docs/classes/_questdb_browser-client.QwpResultBatch.html @@ -1,4 +1,4 @@ -QwpResultBatch | QuestDB JavaScript Client - v5.0.0
Index

Constructors

constructor +QwpResultBatch | QuestDB JavaScript Client - v5.0.0
Index

Constructors

Properties

Methods

Constructors

Properties

batchSequence: bigint
columns: readonly QwpResultColumn[]
requestId: bigint
rowCount: number
tableName: string

Methods

+

Constructors

Properties

batchSequence: bigint
columns: readonly QwpResultColumn[]
requestId: bigint
rowCount: number
tableName: string

Methods

diff --git a/docs/classes/_questdb_browser-client.QwpResultBatchDecoder.html b/docs/classes/_questdb_browser-client.QwpResultBatchDecoder.html index 5f19839a..02f5bdae 100644 --- a/docs/classes/_questdb_browser-client.QwpResultBatchDecoder.html +++ b/docs/classes/_questdb_browser-client.QwpResultBatchDecoder.html @@ -1,5 +1,5 @@ QwpResultBatchDecoder | QuestDB JavaScript Client - v5.0.0

Stateful decoder for connection-scoped QWP result batches.

-
Index

Constructors

Index

Constructors

Properties

Methods

absorbDictionary applyCacheReset @@ -17,7 +17,7 @@ only by QWP_MAX_CELLS_PER_BATCH times the pool size, which the cap's own comment puts at roughly half a gigabyte per slot.

Left undefined the batch is bounded by the cell cap alone, as before.

-

Methods

Methods

  • Applies the delta symbol dictionary carried by a batch whose rows are being discarded, without touching any per-query state.

    The dictionary is connection-scoped and cumulative: the server numbers entries from where the previous batch left off, on the connection rather @@ -31,9 +31,9 @@ asked for.

    The dictionary sits at the front of the body, so this reads only as far as it needs to and never decodes the rows it is throwing away.

    -

    Parameters

    Returns void

+

Parameters

Returns QwpResultBatchView

diff --git a/docs/classes/_questdb_browser-client.QwpResultBatchView.html b/docs/classes/_questdb_browser-client.QwpResultBatchView.html index e67643ba..f2598c54 100644 --- a/docs/classes/_questdb_browser-client.QwpResultBatchView.html +++ b/docs/classes/_questdb_browser-client.QwpResultBatchView.html @@ -1,7 +1,7 @@ QwpResultBatchView | QuestDB JavaScript Client - v5.0.0

Batch-owned reusable view delivered by QwpEgressSession.queryViews(). Access is invalid after the callback returns. materialize() creates an independently owned QwpResultBatch when retention is required.

-
Index

Constructors

Index

Constructors

Accessors

Constructors

Accessors

Methods

  • Visits rows in index order with one re-pointed row view. The callback is +

Constructors

Accessors

Methods

  • Internal

    Parameters

    • requestId: bigint
    • batchSequence: bigint
    • tableName: string
    • rowCount: number
    • layouts: QwpResultColumnViewLayout[]

    Returns this

  • Internal

    Parameters

    • requestId: bigint
    • batchSequence: bigint
    • tableName: string
    • rowCount: number
    • layouts: QwpResultColumnViewLayout[]

    Returns this

+

Parameters

  • rowIndex: number

Returns QwpResultRowView

diff --git a/docs/classes/_questdb_browser-client.QwpResultColumnView.html b/docs/classes/_questdb_browser-client.QwpResultColumnView.html index 1467daa3..f49cfa54 100644 --- a/docs/classes/_questdb_browser-client.QwpResultColumnView.html +++ b/docs/classes/_questdb_browser-client.QwpResultColumnView.html @@ -2,7 +2,7 @@

The view and every byte slice returned from it are valid only while the surrounding queryViews() callback is running. Copy data that must outlive the callback.

-
Index

Constructors

Index

Constructors

Properties

Accessors

Constructors

Properties

columnIndex: number

Accessors

Methods

  • Raw packed non-null values. Fixed-width values use QWP little-endian +

Constructors

Properties

columnIndex: number

Accessors

Methods

  • Raw packed non-null values. Fixed-width values use QWP little-endian layout; booleans are bit-packed and variable-width columns contain their uint32 offset table. SYMBOL returns undefined because IDs are varints.

    -

    Returns undefined | Uint8Array<ArrayBufferLike>

+

Returns undefined | Uint8Array<ArrayBufferLike>

diff --git a/docs/classes/_questdb_browser-client.QwpResultRowView.html b/docs/classes/_questdb_browser-client.QwpResultRowView.html index 0dca0126..e2c92640 100644 --- a/docs/classes/_questdb_browser-client.QwpResultRowView.html +++ b/docs/classes/_questdb_browser-client.QwpResultRowView.html @@ -3,7 +3,7 @@ while the surrounding queryViews() callback is running, and must not be retained across forEachRow() iterations. Byte and array views returned by its accessors remain zero-copy and have the same lifetime.

-
Index

Constructors

Index

Constructors

Accessors

Methods

get @@ -29,10 +29,10 @@ getUuidLow isNull of -

Constructors

Accessors

Methods

+

Constructors

Accessors

Methods

diff --git a/docs/classes/_questdb_browser-client.QwpRoleMismatchError.html b/docs/classes/_questdb_browser-client.QwpRoleMismatchError.html index 62a6b920..d035831e 100644 --- a/docs/classes/_questdb_browser-client.QwpRoleMismatchError.html +++ b/docs/classes/_questdb_browser-client.QwpRoleMismatchError.html @@ -1,5 +1,5 @@ QwpRoleMismatchError | QuestDB JavaScript Client - v5.0.0

A connected endpoint advertised a role that does not satisfy target.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

cause? closeCode? kind @@ -17,7 +17,7 @@ url?

Accessors

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
target: QwpTarget
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

-
tryNextEndpoint?: boolean
url?: string | URL

Accessors

+

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
target: QwpTarget
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

+
tryNextEndpoint?: boolean
url?: string | URL

Accessors

diff --git a/docs/classes/_questdb_browser-client.QwpSendClosedError.html b/docs/classes/_questdb_browser-client.QwpSendClosedError.html index 46af4382..c8f16f99 100644 --- a/docs/classes/_questdb_browser-client.QwpSendClosedError.html +++ b/docs/classes/_questdb_browser-client.QwpSendClosedError.html @@ -1,8 +1,8 @@ QwpSendClosedError | QuestDB JavaScript Client - v5.0.0

A QWP send was rejected because its WebSocket closed.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
+

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpSendError.html b/docs/classes/_questdb_browser-client.QwpSendError.html index 144afeb2..b0ea287a 100644 --- a/docs/classes/_questdb_browser-client.QwpSendError.html +++ b/docs/classes/_questdb_browser-client.QwpSendError.html @@ -1,7 +1,7 @@ QwpSendError | QuestDB JavaScript Client - v5.0.0

A failure while handing a QWP frame to the WebSocket transport.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
+

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpSendTimeoutError.html b/docs/classes/_questdb_browser-client.QwpSendTimeoutError.html index eb33ad74..72ad0fe9 100644 --- a/docs/classes/_questdb_browser-client.QwpSendTimeoutError.html +++ b/docs/classes/_questdb_browser-client.QwpSendTimeoutError.html @@ -1,9 +1,9 @@ QwpSendTimeoutError | QuestDB JavaScript Client - v5.0.0

The WebSocket did not drain a QWP frame before its send deadline.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

bufferedAmountBytes?: number
cause?: unknown
message: string
name: string
stack?: string
timeoutMs: number
+

Constructors

Properties

bufferedAmountBytes?: number
cause?: unknown
message: string
name: string
stack?: string
timeoutMs: number
diff --git a/docs/classes/_questdb_browser-client.QwpSender.html b/docs/classes/_questdb_browser-client.QwpSender.html index 81a11424..46047cf8 100644 --- a/docs/classes/_questdb_browser-client.QwpSender.html +++ b/docs/classes/_questdb_browser-client.QwpSender.html @@ -2,7 +2,7 @@

Applications normally obtain this class through create/connectQwpNodeSender or create/connectQwpBrowserSender, rather than constructing sessions and QwpTableBuffer instances themselves.

-
Index

Accessors

Index

Accessors

Methods

Methods

  • Internal

    Closes the sender on behalf of the pooled QWP client, best effort. A failure -- typically a close drain that timed out with frames still unacknowledged -- is logged as a warning instead of rejecting, as the Java, Rust and Python pools do, so neither pool shutdown nor the lease whose return triggered the close fails because of it.

    -

    Returns Promise<void>

  • Adds a QuestDB DATE column value in milliseconds since the epoch. -9_223_372_036_854_775_808n is QuestDB's DATE NULL sentinel: it is stored as NULL and cannot be stored as an ordinary value.

    -

    Parameters

    • name: string
    • millisecondsSinceEpoch: undefined | null | number | bigint

    Returns QwpSender

  • Parameters

    • name: string
    • unscaled: undefined | null | bigint | Int8Array<ArrayBufferLike>
    • scale: number

    Returns QwpSender

  • Parameters

    • name: string
    • unscaled: undefined | null | bigint | Int8Array<ArrayBufferLike>
    • scale: number

    Returns QwpSender

  • Publishes completed rows to the local ingress/replay boundary without waiting for a server ACK. Use flushAndWait() to also wait for the ACK. A transactional sender commits here: rows previously sent by auto-flush and any pending rows close in one group-closing frame.

    -

    Returns Promise<boolean>

  • Publishes pending rows without waiting for their server ACK and returns the highest frame sequence published by this call, or -1n when it published nothing. Pass the result to waitForAck() to wait for that frame; flushAndWait() waits for everything published so far.

    -

    Returns Promise<bigint>

  • Flushes pending rows, then waits until the server has acknowledged every frame this sender has published, including the frames a store-and-forward journal recovered from an earlier process once the sender has connected. Resolves true once they are acknowledged and false when the ACK watermark @@ -79,17 +79,17 @@ requested, the wait covers durable upload. A transactional sender commits its open transaction first. Over UDP, which has no server acknowledgements, this resolves true once the datagrams are sent.

    -

    Parameters

    • OptionaltimeoutMs: number

    Returns Promise<boolean>

  • Adds a QuestDB INT column value. -2_147_483_648 is QuestDB's INT NULL sentinel: it is stored as NULL and cannot be stored as an ordinary value.

    -

    Parameters

    • name: string
    • value: undefined | null | number

    Returns QwpSender

  • Parameters

    • name: string
    • word0: undefined | null | bigint
    • word1: undefined | null | bigint
    • word2: undefined | null | bigint
    • word3: undefined | null | bigint

    Returns QwpSender

  • Parameters

    • name: string
    • word0: undefined | null | bigint
    • word1: undefined | null | bigint
    • word2: undefined | null | bigint
    • word3: undefined | null | bigint

    Returns QwpSender

  • Adds a protocol LONG[] column value with between 1 and 32 dimensions.

    Current QuestDB servers reject LONG-array ingestion with long arrays are not supported, only double arrays. This method remains available for Java-client and protocol parity.

    -

    Parameters

    • name: string
    • value: undefined | null | unknown[]

    Returns QwpSender

  • Adds a QuestDB LONG column value. -9_223_372_036_854_775_808n is QuestDB's LONG NULL sentinel: it is stored as NULL and cannot be stored as an ordinary value.

    -

    Parameters

    • name: string
    • value: undefined | null | number | bigint

    Returns QwpSender

  • Internal

    Flushes completed rows and resets borrower-local staging without closing the physical session. Used by the pooled QWP client when a lease returns.

    -

    Returns Promise<void>

  • Waits until the cumulative ACK watermark covers a frame sequence, such as +

    Returns Promise<void>

  • Waits until the cumulative ACK watermark covers a frame sequence, such as one returned by flushAndGetSequence(). Resolves true once it does, and false when the watermark makes no progress for timeoutMs (the session's ackTimeoutMs by default); the timeout restarts whenever the watermark @@ -97,6 +97,6 @@ the Java client's awaitAckedFsn(), a timeoutMs of zero or less checks without waiting. Rejects when the server rejects a covered frame or the session can no longer deliver.

    -

    Parameters

    • targetSequence: bigint
    • OptionaltimeoutMs: number

    Returns Promise<boolean>

+

Type Parameters

Parameters

  • tableName: string
  • schema: Schema

Returns QwpTableWriter<Schema>

diff --git a/docs/classes/_questdb_browser-client.QwpSenderCloseTimeoutError.html b/docs/classes/_questdb_browser-client.QwpSenderCloseTimeoutError.html index 1dad000c..ded55536 100644 --- a/docs/classes/_questdb_browser-client.QwpSenderCloseTimeoutError.html +++ b/docs/classes/_questdb_browser-client.QwpSenderCloseTimeoutError.html @@ -1,9 +1,9 @@ QwpSenderCloseTimeoutError | QuestDB JavaScript Client - v5.0.0

close() could not publish and acknowledge all committed ingress frames.

-

Hierarchy

  • Error
    • QwpSenderCloseTimeoutError
Index

Constructors

Hierarchy

  • Error
    • QwpSenderCloseTimeoutError
Index

Constructors

Properties

ackedSequence: bigint
message: string
name: string
stack?: string
targetSequence: bigint
timeoutMs: number
+

Constructors

Properties

ackedSequence: bigint
message: string
name: string
stack?: string
targetSequence: bigint
timeoutMs: number
diff --git a/docs/classes/_questdb_browser-client.QwpSymbolDictionary.html b/docs/classes/_questdb_browser-client.QwpSymbolDictionary.html index 77c2385e..2571f11a 100644 --- a/docs/classes/_questdb_browser-client.QwpSymbolDictionary.html +++ b/docs/classes/_questdb_browser-client.QwpSymbolDictionary.html @@ -1,5 +1,5 @@ QwpSymbolDictionary | QuestDB JavaScript Client - v5.0.0

Connection-scoped QWP symbol dictionary. IDs are dense from zero.

-
Index

Constructors

Index

Constructors

Accessors

Methods

Constructors

Accessors

Methods

+

Constructors

Accessors

Methods

diff --git a/docs/classes/_questdb_browser-client.QwpTableBuffer.html b/docs/classes/_questdb_browser-client.QwpTableBuffer.html index bb4a6992..f7d9e0b6 100644 --- a/docs/classes/_questdb_browser-client.QwpTableBuffer.html +++ b/docs/classes/_questdb_browser-client.QwpTableBuffer.html @@ -1,5 +1,5 @@ QwpTableBuffer | QuestDB JavaScript Client - v5.0.0

Mutable columnar staging area for one QWP ingress table.

-
Index

Constructors

Index

Constructors

Properties

Accessors

Constructors

Properties

name: string

Accessors

Methods

  • Returns null when the current row already contains this column. The first +

Constructors

Properties

name: string

Accessors

Methods

  • Truncates every column back to the last completed row.

    Values are truncated to the committed watermark rather than popped once per non-null marker, because getOrCreateColumn() reserves the current cell as non-null before the caller appends its value. A setter that threw @@ -22,7 +22,7 @@ then deleted the previous completed row's value instead. The table kept that row's non-null marker, so encodeQwpIngressFrame() rejected the whole buffer with a value/marker count mismatch.

    -

    Returns void

+

Parameters

  • start: number
  • end: number

Returns QwpTableBuffer

diff --git a/docs/classes/_questdb_browser-client.QwpTableWriter.html b/docs/classes/_questdb_browser-client.QwpTableWriter.html index 209cd874..f370018c 100644 --- a/docs/classes/_questdb_browser-client.QwpTableWriter.html +++ b/docs/classes/_questdb_browser-client.QwpTableWriter.html @@ -1,7 +1,7 @@ QwpTableWriter | QuestDB JavaScript Client - v5.0.0

Class QwpTableWriter<Schema>

A reusable table-bound writer compiled from a QWP schema.

-

Type Parameters

Index

Properties

Type Parameters

Index

Properties

Methods

Properties

tableName: string

Methods

+

Properties

tableName: string

Methods

diff --git a/docs/classes/_questdb_browser-client.QwpUnrecoverableReplayDictionaryError.html b/docs/classes/_questdb_browser-client.QwpUnrecoverableReplayDictionaryError.html index fbda80e8..56fe76dd 100644 --- a/docs/classes/_questdb_browser-client.QwpUnrecoverableReplayDictionaryError.html +++ b/docs/classes/_questdb_browser-client.QwpUnrecoverableReplayDictionaryError.html @@ -1,8 +1,8 @@ QwpUnrecoverableReplayDictionaryError | QuestDB JavaScript Client - v5.0.0

Class QwpUnrecoverableReplayDictionaryError

Recovered delta frames depend on symbol IDs that neither the durable dictionary prefix nor the surviving frames can reconstruct.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
+

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
diff --git a/docs/classes/_questdb_browser-client.QwpUpgradeError.html b/docs/classes/_questdb_browser-client.QwpUpgradeError.html index 242a42c5..12f9e82f 100644 --- a/docs/classes/_questdb_browser-client.QwpUpgradeError.html +++ b/docs/classes/_questdb_browser-client.QwpUpgradeError.html @@ -1,5 +1,5 @@ QwpUpgradeError | QuestDB JavaScript Client - v5.0.0

A failure while establishing or validating a QWP WebSocket upgrade.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

cause? closeCode? kind @@ -16,7 +16,7 @@ url?

Accessors

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

-
tryNextEndpoint?: boolean
url?: string | URL

Accessors

+

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

+
tryNextEndpoint?: boolean
url?: string | URL

Accessors

diff --git a/docs/classes/_questdb_browser-client.QwpWriterRowError.html b/docs/classes/_questdb_browser-client.QwpWriterRowError.html index ae4d02c6..4b4d1978 100644 --- a/docs/classes/_questdb_browser-client.QwpWriterRowError.html +++ b/docs/classes/_questdb_browser-client.QwpWriterRowError.html @@ -1,5 +1,5 @@ QwpWriterRowError | QuestDB JavaScript Client - v5.0.0

A complete object row failed compiled-writer validation.

-

Hierarchy

  • Error
    • QwpWriterRowError
Index

Constructors

Hierarchy

  • Error
    • QwpWriterRowError
Index

Constructors

Properties

Constructors

Properties

cause: unknown
columnName: undefined | string
message: string
name: string
rowIndex: undefined | number
stack?: string
tableName: string
+

Constructors

Properties

cause: unknown
columnName: undefined | string
message: string
name: string
rowIndex: undefined | number
stack?: string
tableName: string
diff --git a/docs/classes/_questdb_nodejs-client.HttpTransport.html b/docs/classes/_questdb_nodejs-client.HttpTransport.html index 89fe18aa..e669f99e 100644 --- a/docs/classes/_questdb_nodejs-client.HttpTransport.html +++ b/docs/classes/_questdb_nodejs-client.HttpTransport.html @@ -1,6 +1,6 @@ HttpTransport | QuestDB JavaScript Client - v5.0.0

HTTP transport implementation using Node.js built-in http/https modules.
Supports both HTTP and HTTPS protocols with configurable authentication.

-

Hierarchy

  • HttpTransportBase
    • HttpTransport
Index

Constructors

Hierarchy

  • HttpTransportBase
    • HttpTransport
Index

Constructors

Properties

host log password @@ -20,16 +20,16 @@

Constructors

Properties

host: string
log: Logger
password: string
port: number
requestMinThroughput: number
requestTimeout: number
retryTimeout: number
secure: boolean
tlsCA: Buffer
tlsVerify: boolean
token: string
username: string

Methods

Properties

host: string
log: Logger
password: string
port: number
requestMinThroughput: number
requestTimeout: number
retryTimeout: number
secure: boolean
tlsCA: Buffer
tlsVerify: boolean
token: string
username: string

Methods

  • HTTP transport does not require explicit connection establishment.

    Returns Promise<boolean>

    Error indicating connect is not required for HTTP transport

    -
  • Gets the default auto-flush row count for HTTP transport.

    Returns number

    Default number of rows that trigger auto-flush

    -
  • Sends data to QuestDB using HTTP POST.

    Parameters

    • data: Buffer

      Buffer containing the data to send

    • retryBegin: number = -1

      Internal parameter for tracking retry start time

    • retryInterval: number = -1

      Internal parameter for tracking retry intervals

    Returns Promise<boolean>

    Promise resolving to true if data was sent successfully

    Error if request fails after all retries or times out

    -
+
diff --git a/docs/classes/_questdb_nodejs-client.QwpBatchTooLargeError.html b/docs/classes/_questdb_nodejs-client.QwpBatchTooLargeError.html index bfc23955..696e1e6b 100644 --- a/docs/classes/_questdb_nodejs-client.QwpBatchTooLargeError.html +++ b/docs/classes/_questdb_nodejs-client.QwpBatchTooLargeError.html @@ -1,4 +1,4 @@ -QwpBatchTooLargeError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • RangeError
    • QwpBatchTooLargeError
Index

Constructors

constructor +QwpBatchTooLargeError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • RangeError
    • QwpBatchTooLargeError
Index

Constructors

Properties

batchSizeBytes: number
cause?: unknown
maxBatchSizeBytes: number
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

batchSizeBytes: number
cause?: unknown
maxBatchSizeBytes: number
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpBindValues.html b/docs/classes/_questdb_nodejs-client.QwpBindValues.html index 307a90b6..1e2631ac 100644 --- a/docs/classes/_questdb_nodejs-client.QwpBindValues.html +++ b/docs/classes/_questdb_nodejs-client.QwpBindValues.html @@ -1,7 +1,7 @@ QwpBindValues | QuestDB JavaScript Client - v5.0.0

Browser-safe typed positional bind encoder.

Setters must be called in ascending zero-based index order. SQL placeholders are one-based, so index 0 binds $1, index 1 binds $2, and so on.

-
Index

Constructors

Index

Constructors

Accessors

Methods

Constructors

Accessors

Methods

  • Binds a typed NULL.

    +

Constructors

Accessors

Methods

  • Binds a typed NULL.

    A null bind is exactly type + flag + bitmap. The only types that carry anything more are the ones whose prefix the decoder reads before it branches on the null flag: the DECIMAL scale byte and the GEOHASH @@ -40,6 +40,6 @@ the server read that word's first byte as the next bind's type code ("unsupported wire type 0x0"), or, after the last bind, as the trailing queryFlags varint -- silently dropping a requested dictionary reset.

    -

    Parameters

    Returns this

+

Parameters

Returns this

diff --git a/docs/classes/_questdb_nodejs-client.QwpByteReader.html b/docs/classes/_questdb_nodejs-client.QwpByteReader.html index 28daa183..925d2a7e 100644 --- a/docs/classes/_questdb_nodejs-client.QwpByteReader.html +++ b/docs/classes/_questdb_nodejs-client.QwpByteReader.html @@ -1,5 +1,5 @@ QwpByteReader | QuestDB JavaScript Client - v5.0.0

A bounds-checked, runtime-neutral little-endian byte reader.

-
Index

Constructors

Index

Constructors

Properties

Accessors

Constructors

Properties

bytes: Uint8Array

Accessors

Methods

+

Constructors

Properties

bytes: Uint8Array

Accessors

Methods

diff --git a/docs/classes/_questdb_nodejs-client.QwpByteWriter.html b/docs/classes/_questdb_nodejs-client.QwpByteWriter.html index 06f00c99..939ec874 100644 --- a/docs/classes/_questdb_nodejs-client.QwpByteWriter.html +++ b/docs/classes/_questdb_nodejs-client.QwpByteWriter.html @@ -1,5 +1,5 @@ QwpByteWriter | QuestDB JavaScript Client - v5.0.0

A growable, runtime-neutral little-endian byte writer.

-
Index

Constructors

Index

Constructors

Accessors

Methods

Constructors

Accessors

Methods

+

Constructors

Accessors

Methods

diff --git a/docs/classes/_questdb_nodejs-client.QwpClient.html b/docs/classes/_questdb_nodejs-client.QwpClient.html index 06416ed6..439c927f 100644 --- a/docs/classes/_questdb_nodejs-client.QwpClient.html +++ b/docs/classes/_questdb_nodejs-client.QwpClient.html @@ -1,15 +1,15 @@ QwpClient | QuestDB JavaScript Client - v5.0.0

Browser-safe facade owning bounded ingress and egress connection pools. Borrowed handles are exclusive; separate query leases execute concurrently.

-
Index

Constructors

Index

Constructors

Accessors

Methods

  • Rejects new borrows and closes idle resources. Borrowed query sessions are +

Constructors

Accessors

Methods

  • Rejects new borrows and closes idle resources. Borrowed query sessions are cancelled and closed; borrowed senders retain ownership during a bounded drain and own their teardown if they outlive it.

    -

    Returns Promise<void>

+

Returns Promise<void>

diff --git a/docs/classes/_questdb_nodejs-client.QwpClientClosedError.html b/docs/classes/_questdb_nodejs-client.QwpClientClosedError.html index edac8586..a647aa2a 100644 --- a/docs/classes/_questdb_nodejs-client.QwpClientClosedError.html +++ b/docs/classes/_questdb_nodejs-client.QwpClientClosedError.html @@ -1,5 +1,5 @@ QwpClientClosedError | QuestDB JavaScript Client - v5.0.0

The owning QWP client, or one of its returned lease handles, is closed.

-

Hierarchy

  • Error
    • QwpClientClosedError
Index

Constructors

Hierarchy

  • Error
    • QwpClientClosedError
Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpDurableAckUnavailableError.html b/docs/classes/_questdb_nodejs-client.QwpDurableAckUnavailableError.html index 51e3f598..89e69d70 100644 --- a/docs/classes/_questdb_nodejs-client.QwpDurableAckUnavailableError.html +++ b/docs/classes/_questdb_nodejs-client.QwpDurableAckUnavailableError.html @@ -1,5 +1,5 @@ QwpDurableAckUnavailableError | QuestDB JavaScript Client - v5.0.0

Class QwpDurableAckUnavailableError

A requested durable-ACK capability was not confirmed by the server.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

-
tryNextEndpoint?: boolean
url?: string | URL
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

+
tryNextEndpoint?: boolean
url?: string | URL
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,8 +28,8 @@

If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

Accessors

Methods

  • Creates a .stack property on targetObject, which when accessed returns +

    Returns boolean

Methods

diff --git a/docs/classes/_questdb_nodejs-client.QwpEgressQueryAbandonedError.html b/docs/classes/_questdb_nodejs-client.QwpEgressQueryAbandonedError.html index 27c9d63c..2aa8d49b 100644 --- a/docs/classes/_questdb_nodejs-client.QwpEgressQueryAbandonedError.html +++ b/docs/classes/_questdb_nodejs-client.QwpEgressQueryAbandonedError.html @@ -1,5 +1,5 @@ QwpEgressQueryAbandonedError | QuestDB JavaScript Client - v5.0.0

Class QwpEgressQueryAbandonedError

Result iteration ended before the server completed the query.

-

Hierarchy

  • Error
    • QwpEgressQueryAbandonedError
Index

Constructors

Hierarchy

  • Error
    • QwpEgressQueryAbandonedError
Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
requestId: bigint
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
requestId: bigint
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpEgressQueryCancelTimeoutError.html b/docs/classes/_questdb_nodejs-client.QwpEgressQueryCancelTimeoutError.html index baffc4ca..f144c6c1 100644 --- a/docs/classes/_questdb_nodejs-client.QwpEgressQueryCancelTimeoutError.html +++ b/docs/classes/_questdb_nodejs-client.QwpEgressQueryCancelTimeoutError.html @@ -1,6 +1,6 @@ QwpEgressQueryCancelTimeoutError | QuestDB JavaScript Client - v5.0.0

Class QwpEgressQueryCancelTimeoutError

The server did not terminate a cancelled query within the drain deadline, so the session gave up on the connection.

-

Hierarchy

  • Error
    • QwpEgressQueryCancelTimeoutError
Index

Constructors

Hierarchy

  • Error
    • QwpEgressQueryCancelTimeoutError
Index

Constructors

Properties

cause? message name @@ -10,7 +10,7 @@ stackTraceLimit

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
requestId: bigint
stack?: string
timeoutMs: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
requestId: bigint
stack?: string
timeoutMs: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpEgressQueryError.html b/docs/classes/_questdb_nodejs-client.QwpEgressQueryError.html index c5b1475f..7ceeb34d 100644 --- a/docs/classes/_questdb_nodejs-client.QwpEgressQueryError.html +++ b/docs/classes/_questdb_nodejs-client.QwpEgressQueryError.html @@ -1,4 +1,4 @@ -QwpEgressQueryError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • Error
    • QwpEgressQueryError
Index

Constructors

constructor +QwpEgressQueryError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • Error
    • QwpEgressQueryError
Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
requestId: bigint
stack?: string
status: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
requestId: bigint
stack?: string
status: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpEgressQueryTimeoutError.html b/docs/classes/_questdb_nodejs-client.QwpEgressQueryTimeoutError.html index 9256c161..1df2dd59 100644 --- a/docs/classes/_questdb_nodejs-client.QwpEgressQueryTimeoutError.html +++ b/docs/classes/_questdb_nodejs-client.QwpEgressQueryTimeoutError.html @@ -1,7 +1,7 @@ QwpEgressQueryTimeoutError | QuestDB JavaScript Client - v5.0.0

Class QwpEgressQueryTimeoutError

The query ran past its timeout (queryTimeoutMs or the per-query timeoutMs) and was cancelled. Reported once the server has ended the query, or after the grace period if it has not.

-

Hierarchy

  • Error
    • QwpEgressQueryTimeoutError
Index

Constructors

Hierarchy

  • Error
    • QwpEgressQueryTimeoutError
Index

Constructors

Properties

cause? message name @@ -11,7 +11,7 @@ stackTraceLimit

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
requestId: bigint
stack?: string
timeoutMs: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
requestId: bigint
stack?: string
timeoutMs: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpEgressSession.html b/docs/classes/_questdb_nodejs-client.QwpEgressSession.html index 6c0fd2cc..93d4e7dd 100644 --- a/docs/classes/_questdb_nodejs-client.QwpEgressSession.html +++ b/docs/classes/_questdb_nodejs-client.QwpEgressSession.html @@ -5,7 +5,7 @@ timeout -- may still be draining on the connection; a new query waits for that rather than failing. A completed query's materialized batches may still be consumed while the next query runs.

-

Implements

  • QwpEgressQueryControl
Index

Properties

Implements

  • QwpEgressQueryControl
Index

Properties

Accessors

Properties

ready: Promise<QwpServerInfoMessage>

Initial SERVER_INFO; use serverInfo for the current post-failover snapshot.

-

Accessors

Accessors

  • get metrics(): QwpEgressMetrics

    Immutable notification-inbox counters for this session's reconnect observer, the egress counterpart of QwpSender.metrics.ingress.

    A reconnect.onEvent observer runs on a bounded inbox that drops its oldest pending entry under overflow, exactly as ingress does. Nothing @@ -30,23 +30,23 @@ either, because attempt resets to one on every success: six outages that discarded eleven events were indistinguishable from a healthy two. A non-zero drop count means the observer is not keeping up.

    -

    Returns QwpEgressMetrics

Methods

  • Parameters

    • requestId: bigint
    • additionalBytes: number | bigint
    • replayOnReconnect: boolean = true
    • acceptWhenReconnectStarts: boolean = false

    Returns Promise<void>

Methods

  • Parameters

    • requestId: bigint
    • additionalBytes: number | bigint
    • replayOnReconnect: boolean = true
    • acceptWhenReconnectStarts: boolean = false

    Returns Promise<void>

  • Internal

    Cancels and drains an active operation before a pooled lease is returned. False means the physical session is no longer safe to reuse.

    A query() of the lease that has not started yet -- still waiting for SERVER_INFO, or for an abandoned query to drain -- rejects with abandonStart() instead. Left waiting, it started as soon as the drain below finished, on a session the pool was handing to its next borrower, whose own query() then failed because one was already active.

    -

    Parameters

    • abandonStart: () => Error

    Returns Promise<boolean>

  • Internal

    Best-effort cancellation followed by physical connection teardown for facade shutdown. Unlike pooled lease return, this does not wait for the server to finish draining the cancelled query.

    -

    Returns Promise<void>

+

Returns Promise<void>

diff --git a/docs/classes/_questdb_nodejs-client.QwpEgressSessionClosedError.html b/docs/classes/_questdb_nodejs-client.QwpEgressSessionClosedError.html index e5ea07b2..317b8979 100644 --- a/docs/classes/_questdb_nodejs-client.QwpEgressSessionClosedError.html +++ b/docs/classes/_questdb_nodejs-client.QwpEgressSessionClosedError.html @@ -1,4 +1,4 @@ -QwpEgressSessionClosedError | QuestDB JavaScript Client - v5.0.0

Class QwpEgressSessionClosedError

Hierarchy

  • Error
    • QwpEgressSessionClosedError
Index

Constructors

constructor +QwpEgressSessionClosedError | QuestDB JavaScript Client - v5.0.0

Class QwpEgressSessionClosedError

Hierarchy

  • Error
    • QwpEgressSessionClosedError
Index

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpFailoverError.html b/docs/classes/_questdb_nodejs-client.QwpFailoverError.html index 1544510f..f5b5997f 100644 --- a/docs/classes/_questdb_nodejs-client.QwpFailoverError.html +++ b/docs/classes/_questdb_nodejs-client.QwpFailoverError.html @@ -1,5 +1,5 @@ QwpFailoverError | QuestDB JavaScript Client - v5.0.0

Every eligible QWP endpoint in one connection sweep failed.

-

Hierarchy

  • Error
    • QwpFailoverError
Index

Constructors

Hierarchy

  • Error
    • QwpFailoverError
Index

Constructors

Properties

attempts: readonly QwpFailoverAttempt[]
cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

attempts: readonly QwpFailoverAttempt[]
cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpIngressAckAbandonedError.html b/docs/classes/_questdb_nodejs-client.QwpIngressAckAbandonedError.html index 22198ab8..c50d6d58 100644 --- a/docs/classes/_questdb_nodejs-client.QwpIngressAckAbandonedError.html +++ b/docs/classes/_questdb_nodejs-client.QwpIngressAckAbandonedError.html @@ -1,5 +1,5 @@ QwpIngressAckAbandonedError | QuestDB JavaScript Client - v5.0.0

Class QwpIngressAckAbandonedError

A recovered frame was deliberately retired without a server ACK.

-

Hierarchy

  • Error
    • QwpIngressAckAbandonedError
Index

Constructors

Hierarchy

  • Error
    • QwpIngressAckAbandonedError
Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
fromFsn: bigint
message: string
name: string
stack?: string
targetSequence: bigint
toFsn: bigint
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
fromFsn: bigint
message: string
name: string
stack?: string
targetSequence: bigint
toFsn: bigint
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpIngressNackError.html b/docs/classes/_questdb_nodejs-client.QwpIngressNackError.html index d85b76f0..c6ad2dcf 100644 --- a/docs/classes/_questdb_nodejs-client.QwpIngressNackError.html +++ b/docs/classes/_questdb_nodejs-client.QwpIngressNackError.html @@ -1,4 +1,4 @@ -QwpIngressNackError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • Error
    • QwpIngressNackError
Index

Constructors

constructor +QwpIngressNackError | QuestDB JavaScript Client - v5.0.0

Hierarchy

  • Error
    • QwpIngressNackError
Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
senderError: QwpSenderError = ...
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
senderError: QwpSenderError = ...
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpIngressSessionClosedError.html b/docs/classes/_questdb_nodejs-client.QwpIngressSessionClosedError.html index ab911576..03c64ef7 100644 --- a/docs/classes/_questdb_nodejs-client.QwpIngressSessionClosedError.html +++ b/docs/classes/_questdb_nodejs-client.QwpIngressSessionClosedError.html @@ -1,4 +1,4 @@ -QwpIngressSessionClosedError | QuestDB JavaScript Client - v5.0.0

Class QwpIngressSessionClosedError

Hierarchy

  • Error
    • QwpIngressSessionClosedError
Index

Constructors

constructor +QwpIngressSessionClosedError | QuestDB JavaScript Client - v5.0.0

Class QwpIngressSessionClosedError

Hierarchy

  • Error
    • QwpIngressSessionClosedError
Index

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpMemoryReplayAppendTimeoutError.html b/docs/classes/_questdb_nodejs-client.QwpMemoryReplayAppendTimeoutError.html index 4f030b84..3af5eb19 100644 --- a/docs/classes/_questdb_nodejs-client.QwpMemoryReplayAppendTimeoutError.html +++ b/docs/classes/_questdb_nodejs-client.QwpMemoryReplayAppendTimeoutError.html @@ -1,5 +1,5 @@ QwpMemoryReplayAppendTimeoutError | QuestDB JavaScript Client - v5.0.0

Class QwpMemoryReplayAppendTimeoutError

ACK-driven trimming did not free in-memory replay capacity in time.

-

Hierarchy

  • Error
    • QwpMemoryReplayAppendTimeoutError
Index

Constructors

Hierarchy

  • Error
    • QwpMemoryReplayAppendTimeoutError
Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
maxBytes: number
message: string
name: string
requiredBytes: number
stack?: string
timeoutMs: number
usedBytes: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
maxBytes: number
message: string
name: string
requiredBytes: number
stack?: string
timeoutMs: number
usedBytes: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpMemoryReplayBatchTooLargeError.html b/docs/classes/_questdb_nodejs-client.QwpMemoryReplayBatchTooLargeError.html index 610dadb4..78a543d8 100644 --- a/docs/classes/_questdb_nodejs-client.QwpMemoryReplayBatchTooLargeError.html +++ b/docs/classes/_questdb_nodejs-client.QwpMemoryReplayBatchTooLargeError.html @@ -1,5 +1,5 @@ QwpMemoryReplayBatchTooLargeError | QuestDB JavaScript Client - v5.0.0

Class QwpMemoryReplayBatchTooLargeError

One logical batch can never fit in the configured in-memory replay budget.

-

Hierarchy

  • RangeError
    • QwpMemoryReplayBatchTooLargeError
Index

Constructors

Hierarchy

  • RangeError
    • QwpMemoryReplayBatchTooLargeError
Index

Constructors

Properties

cause?: unknown
frameCount: number
maxBytes: number
message: string
name: string
requiredBytes: number
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
frameCount: number
maxBytes: number
message: string
name: string
requiredBytes: number
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpMemoryReplayFrameTooLargeError.html b/docs/classes/_questdb_nodejs-client.QwpMemoryReplayFrameTooLargeError.html index 31e1fa39..5cf3dcd0 100644 --- a/docs/classes/_questdb_nodejs-client.QwpMemoryReplayFrameTooLargeError.html +++ b/docs/classes/_questdb_nodejs-client.QwpMemoryReplayFrameTooLargeError.html @@ -1,5 +1,5 @@ QwpMemoryReplayFrameTooLargeError | QuestDB JavaScript Client - v5.0.0

Class QwpMemoryReplayFrameTooLargeError

One frame can never fit in the configured in-memory replay budget.

-

Hierarchy

  • RangeError
    • QwpMemoryReplayFrameTooLargeError
Index

Constructors

Hierarchy

  • RangeError
    • QwpMemoryReplayFrameTooLargeError
Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
maxBytes: number
message: string
name: string
payloadBytes: number
requiredBytes: number
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
maxBytes: number
message: string
name: string
payloadBytes: number
requiredBytes: number
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpPoolAcquireTimeoutError.html b/docs/classes/_questdb_nodejs-client.QwpPoolAcquireTimeoutError.html index 91644e9e..1a1eb250 100644 --- a/docs/classes/_questdb_nodejs-client.QwpPoolAcquireTimeoutError.html +++ b/docs/classes/_questdb_nodejs-client.QwpPoolAcquireTimeoutError.html @@ -1,5 +1,5 @@ QwpPoolAcquireTimeoutError | QuestDB JavaScript Client - v5.0.0

Class QwpPoolAcquireTimeoutError

A bounded QWP pool could not provide a connection before its deadline.

-

Hierarchy

  • Error
    • QwpPoolAcquireTimeoutError
Index

Constructors

Hierarchy

  • Error
    • QwpPoolAcquireTimeoutError
Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
resource: "query" | "sender"
stack?: string
timeoutMs: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
resource: "query" | "sender"
stack?: string
timeoutMs: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpPoolResourceError.html b/docs/classes/_questdb_nodejs-client.QwpPoolResourceError.html index 796ff60c..03d691b2 100644 --- a/docs/classes/_questdb_nodejs-client.QwpPoolResourceError.html +++ b/docs/classes/_questdb_nodejs-client.QwpPoolResourceError.html @@ -1,5 +1,5 @@ QwpPoolResourceError | QuestDB JavaScript Client - v5.0.0

A pooled resource failed while a new slot was being connected.

-

Hierarchy

  • Error
    • QwpPoolResourceError
Index

Constructors

Hierarchy

  • Error
    • QwpPoolResourceError
Index

Constructors

Properties

Methods

Constructors

Properties

cause: unknown
message: string
name: string
resource: "query" | "sender"
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause: unknown
message: string
name: string
resource: "query" | "sender"
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpProtocolError.html b/docs/classes/_questdb_nodejs-client.QwpProtocolError.html index bae693e5..90eff6a4 100644 --- a/docs/classes/_questdb_nodejs-client.QwpProtocolError.html +++ b/docs/classes/_questdb_nodejs-client.QwpProtocolError.html @@ -1,5 +1,5 @@ QwpProtocolError | QuestDB JavaScript Client - v5.0.0

Raised when a QWP payload is malformed, truncated, or unsupported.

-

Hierarchy

  • Error
    • QwpProtocolError
Index

Constructors

Hierarchy

  • Error
    • QwpProtocolError
Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpQueryLease.html b/docs/classes/_questdb_nodejs-client.QwpQueryLease.html index d62f9417..d4b1d91b 100644 --- a/docs/classes/_questdb_nodejs-client.QwpQueryLease.html +++ b/docs/classes/_questdb_nodejs-client.QwpQueryLease.html @@ -1,5 +1,5 @@ QwpQueryLease | QuestDB JavaScript Client - v5.0.0

One exclusively borrowed egress session from a QwpClient query pool.

-
Index

Constructors

Index

Constructors

Properties

Accessors

Methods

Constructors

Properties

ready: Promise<QwpServerInfoMessage>

Initial SERVER_INFO; use serverInfo for the current post-failover snapshot.

-

Accessors

  • get serverInfo(): QwpServerInfoMessage

    Cached immutable SERVER_INFO for this lease's currently bound endpoint. +

Constructors

Properties

ready: Promise<QwpServerInfoMessage>

Initial SERVER_INFO; use serverInfo for the current post-failover snapshot.

+

Accessors

Methods

+

Returns QwpServerInfoMessage

Methods

diff --git a/docs/classes/_questdb_nodejs-client.QwpReconnectExhaustedError.html b/docs/classes/_questdb_nodejs-client.QwpReconnectExhaustedError.html index ddf02716..7bed2dfa 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReconnectExhaustedError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReconnectExhaustedError.html @@ -2,7 +2,7 @@ reached reconnectMaxDurationMs, or an egress failover episode reached failoverMaxAttempts or failoverMaxDurationMs. A connected ingress session does not raise it, because its reconnects are not bounded.

-

Hierarchy

  • Error
    • QwpReconnectExhaustedError
Index

Constructors

Hierarchy

  • Error
    • QwpReconnectExhaustedError
Index

Constructors

Properties

Methods

Constructors

Properties

attempts: number
cause: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

attempts: number
cause: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayDictionaryError.html b/docs/classes/_questdb_nodejs-client.QwpReplayDictionaryError.html index 0c700984..b66b4743 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayDictionaryError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayDictionaryError.html @@ -1,5 +1,5 @@ QwpReplayDictionaryError | QuestDB JavaScript Client - v5.0.0

A replay store cannot preserve the dictionary required by delta frames.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayDictionaryPersistenceError.html b/docs/classes/_questdb_nodejs-client.QwpReplayDictionaryPersistenceError.html index 122df1a2..e1e1262f 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayDictionaryPersistenceError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayDictionaryPersistenceError.html @@ -1,7 +1,7 @@ QwpReplayDictionaryPersistenceError | QuestDB JavaScript Client - v5.0.0

Class QwpReplayDictionaryPersistenceError

A replay dictionary sidecar rejected an append before its delta frame was published. The reconnecting transport has permanently switched to full, self-contained symbol encoding; retrying the logical batch is safe.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayRejectedError.html b/docs/classes/_questdb_nodejs-client.QwpReplayRejectedError.html index 5a0f1c22..f02227d2 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayRejectedError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayRejectedError.html @@ -1,5 +1,5 @@ QwpReplayRejectedError | QuestDB JavaScript Client - v5.0.0

A replayed ingress frame was rejected and remains in persistent storage.

-

Hierarchy

  • Error
    • QwpReplayRejectedError
Index

Constructors

Hierarchy

  • Error
    • QwpReplayRejectedError
Index

Constructors

Properties

cause?: unknown
frameSequence: bigint
message: string
name: string
stack?: string
status: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
frameSequence: bigint
message: string
name: string
stack?: string
status: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayStoreAppendTimeoutError.html b/docs/classes/_questdb_nodejs-client.QwpReplayStoreAppendTimeoutError.html index 5fe112c4..b9b4314e 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayStoreAppendTimeoutError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayStoreAppendTimeoutError.html @@ -1,4 +1,4 @@ -QwpReplayStoreAppendTimeoutError | QuestDB JavaScript Client - v5.0.0

Class QwpReplayStoreAppendTimeoutError

Hierarchy (View Summary)

Index

Constructors

constructor +QwpReplayStoreAppendTimeoutError | QuestDB JavaScript Client - v5.0.0

Class QwpReplayStoreAppendTimeoutError

Hierarchy (View Summary)

Index

Constructors

Properties

cause? maxBytes message @@ -10,14 +10,14 @@ stackTraceLimit

Methods

Constructors

Properties

cause?: unknown
maxBytes: number
message: string
name: string
requiredBytes: number
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

+

Constructors

Properties

cause?: unknown
maxBytes: number
message: string
name: string
requiredBytes: number
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

Background maintenance and checkpoint faults are parked and cleared on the next successful batch, so a briefly full, read-only or descriptor-starved filesystem is retryable. Structural corruption and a slot lock taken over by another process are verdicts on the journal itself and are not. The ingress connection lives in the browser-safe layer and cannot reference these classes, so it reads this flag structurally.

-
stack?: string
timeoutMs: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

stack?: string
timeoutMs: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayStoreBatchTooLargeError.html b/docs/classes/_questdb_nodejs-client.QwpReplayStoreBatchTooLargeError.html index 08b0ddc0..6bca60d8 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayStoreBatchTooLargeError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayStoreBatchTooLargeError.html @@ -1,5 +1,5 @@ QwpReplayStoreBatchTooLargeError | QuestDB JavaScript Client - v5.0.0

Class QwpReplayStoreBatchTooLargeError

One logical batch can never fit in an empty store-and-forward journal.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
frameCount: number
maxBytes: number
message: string
name: string
requiredBytes: number
retryable: false

Whether reconnecting and replaying can plausibly clear this failure.

+

Constructors

Properties

cause?: unknown
frameCount: number
maxBytes: number
message: string
name: string
requiredBytes: number
retryable: false

Whether reconnecting and replaying can plausibly clear this failure.

Background maintenance and checkpoint faults are parked and cleared on the next successful batch, so a briefly full, read-only or descriptor-starved filesystem is retryable. Structural corruption and a slot lock taken over by another process are verdicts on the journal itself and are not. The ingress connection lives in the browser-safe layer and cannot reference these classes, so it reads this flag structurally.

-
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayStoreCheckpointError.html b/docs/classes/_questdb_nodejs-client.QwpReplayStoreCheckpointError.html index 59ab2b9c..d71d1f5a 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayStoreCheckpointError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayStoreCheckpointError.html @@ -1,4 +1,4 @@ -QwpReplayStoreCheckpointError | QuestDB JavaScript Client - v5.0.0

Class QwpReplayStoreCheckpointError

Hierarchy (View Summary)

Index

Constructors

constructor +QwpReplayStoreCheckpointError | QuestDB JavaScript Client - v5.0.0

Class QwpReplayStoreCheckpointError

Hierarchy (View Summary)

Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
directory: string
message: string
name: string
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

+

Constructors

Properties

cause?: unknown
directory: string
message: string
name: string
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

Background maintenance and checkpoint faults are parked and cleared on the next successful batch, so a briefly full, read-only or descriptor-starved filesystem is retryable. Structural corruption and a slot lock taken over by another process are verdicts on the journal itself and are not. The ingress connection lives in the browser-safe layer and cannot reference these classes, so it reads this flag structurally.

-
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayStoreCorruptionError.html b/docs/classes/_questdb_nodejs-client.QwpReplayStoreCorruptionError.html index b7ae7438..1c725971 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayStoreCorruptionError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayStoreCorruptionError.html @@ -1,5 +1,5 @@ QwpReplayStoreCorruptionError | QuestDB JavaScript Client - v5.0.0

Class QwpReplayStoreCorruptionError

Durable journal bytes are structurally corrupt and cannot be replayed.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
retryable: false

Corrupt bytes read the same way on every attempt.

-
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
retryable: false

Corrupt bytes read the same way on every attempt.

+
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayStoreError.html b/docs/classes/_questdb_nodejs-client.QwpReplayStoreError.html index 3383ebf4..9fa53b2b 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayStoreError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayStoreError.html @@ -1,4 +1,4 @@ -QwpReplayStoreError | QuestDB JavaScript Client - v5.0.0

Hierarchy (View Summary)

Index

Constructors

constructor +QwpReplayStoreError | QuestDB JavaScript Client - v5.0.0

Hierarchy (View Summary)

Index

Constructors

Properties

cause? message name @@ -7,14 +7,14 @@ stackTraceLimit

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

+

Constructors

Properties

cause?: unknown
message: string
name: string
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

Background maintenance and checkpoint faults are parked and cleared on the next successful batch, so a briefly full, read-only or descriptor-starved filesystem is retryable. Structural corruption and a slot lock taken over by another process are verdicts on the journal itself and are not. The ingress connection lives in the browser-safe layer and cannot reference these classes, so it reads this flag structurally.

-
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayStoreFullError.html b/docs/classes/_questdb_nodejs-client.QwpReplayStoreFullError.html index 2f82d4b0..11807a75 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayStoreFullError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayStoreFullError.html @@ -1,4 +1,4 @@ -QwpReplayStoreFullError | QuestDB JavaScript Client - v5.0.0

Hierarchy (View Summary)

Index

Constructors

constructor +QwpReplayStoreFullError | QuestDB JavaScript Client - v5.0.0

Hierarchy (View Summary)

Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
maxBytes: number
message: string
name: string
requiredBytes: number
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

+

Constructors

Properties

cause?: unknown
maxBytes: number
message: string
name: string
requiredBytes: number
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

Background maintenance and checkpoint faults are parked and cleared on the next successful batch, so a briefly full, read-only or descriptor-starved filesystem is retryable. Structural corruption and a slot lock taken over by another process are verdicts on the journal itself and are not. The ingress connection lives in the browser-safe layer and cannot reference these classes, so it reads this flag structurally.

-
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayStoreLockLostError.html b/docs/classes/_questdb_nodejs-client.QwpReplayStoreLockLostError.html index 9e2a66ef..cf20a1af 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayStoreLockLostError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayStoreLockLostError.html @@ -6,7 +6,7 @@ because a frame's sequence is derived from its position, an overwrite of the same width leaves a journal that reopens as intact with the new owner's frames gone. Failing the append is what keeps that loss impossible.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
directory: string
message: string
name: string
retryable: false

Retrying is precisely what must not happen: the slot belongs to another +

Constructors

Properties

cause?: unknown
directory: string
message: string
name: string
retryable: false

Retrying is precisely what must not happen: the slot belongs to another process now, so replaying out of it would race that owner's appends.

-
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayStoreLockUnprovableError.html b/docs/classes/_questdb_nodejs-client.QwpReplayStoreLockUnprovableError.html index def41b7e..d7c9527e 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayStoreLockUnprovableError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayStoreLockUnprovableError.html @@ -9,7 +9,7 @@ ending the session. Collapsing them terminated a producer -- permanently, with the transport healthy throughout -- because the host process briefly ran out of descriptors, and blamed a second process that did not exist.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
directory: string
message: string
name: string
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

+

Constructors

Properties

cause?: unknown
directory: string
message: string
name: string
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

Background maintenance and checkpoint faults are parked and cleared on the next successful batch, so a briefly full, read-only or descriptor-starved filesystem is retryable. Structural corruption and a slot lock taken over by another process are verdicts on the journal itself and are not. The ingress connection lives in the browser-safe layer and cannot reference these classes, so it reads this flag structurally.

-
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayStoreLockedError.html b/docs/classes/_questdb_nodejs-client.QwpReplayStoreLockedError.html index c8f2a5f2..796a4fe6 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayStoreLockedError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayStoreLockedError.html @@ -1,4 +1,4 @@ -QwpReplayStoreLockedError | QuestDB JavaScript Client - v5.0.0

Hierarchy (View Summary)

Index

Constructors

constructor +QwpReplayStoreLockedError | QuestDB JavaScript Client - v5.0.0

Hierarchy (View Summary)

Index

Constructors

Properties

cause?: unknown
directory: string
holderPid?: number
message: string
name: string
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

+

Constructors

Properties

cause?: unknown
directory: string
holderPid?: number
message: string
name: string
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

Background maintenance and checkpoint faults are parked and cleared on the next successful batch, so a briefly full, read-only or descriptor-starved filesystem is retryable. Structural corruption and a slot lock taken over by another process are verdicts on the journal itself and are not. The ingress connection lives in the browser-safe layer and cannot reference these classes, so it reads this flag structurally.

-
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayStoreQuarantinedError.html b/docs/classes/_questdb_nodejs-client.QwpReplayStoreQuarantinedError.html index 286e8689..911cdef0 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayStoreQuarantinedError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayStoreQuarantinedError.html @@ -1,5 +1,5 @@ QwpReplayStoreQuarantinedError | QuestDB JavaScript Client - v5.0.0

Class QwpReplayStoreQuarantinedError

A terminal replay slot was preserved under a quarantine pathname.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
directory: string
message: string
name: string
quarantineDirectory: string
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

+

Constructors

Properties

cause?: unknown
directory: string
message: string
name: string
quarantineDirectory: string
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

Background maintenance and checkpoint faults are parked and cleared on the next successful batch, so a briefly full, read-only or descriptor-starved filesystem is retryable. Structural corruption and a slot lock taken over by another process are verdicts on the journal itself and are not. The ingress connection lives in the browser-safe layer and cannot reference these classes, so it reads this flag structurally.

-
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpReplayStoreSegmentTooLargeError.html b/docs/classes/_questdb_nodejs-client.QwpReplayStoreSegmentTooLargeError.html index 4558d2af..3af0e133 100644 --- a/docs/classes/_questdb_nodejs-client.QwpReplayStoreSegmentTooLargeError.html +++ b/docs/classes/_questdb_nodejs-client.QwpReplayStoreSegmentTooLargeError.html @@ -1,4 +1,4 @@ -QwpReplayStoreSegmentTooLargeError | QuestDB JavaScript Client - v5.0.0

Class QwpReplayStoreSegmentTooLargeError

Hierarchy (View Summary)

Index

Constructors

constructor +QwpReplayStoreSegmentTooLargeError | QuestDB JavaScript Client - v5.0.0

Class QwpReplayStoreSegmentTooLargeError

Hierarchy (View Summary)

Index

Constructors

Properties

cause?: unknown
maxSegmentBytes: number
message: string
name: string
payloadBytes: number
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

+

Constructors

Properties

cause?: unknown
maxSegmentBytes: number
message: string
name: string
payloadBytes: number
retryable: boolean = true

Whether reconnecting and replaying can plausibly clear this failure.

Background maintenance and checkpoint faults are parked and cleared on the next successful batch, so a briefly full, read-only or descriptor-starved filesystem is retryable. Structural corruption and a slot lock taken over by another process are verdicts on the journal itself and are not. The ingress connection lives in the browser-safe layer and cannot reference these classes, so it reads this flag structurally.

-
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpResultBatch.html b/docs/classes/_questdb_nodejs-client.QwpResultBatch.html index 48eabed9..894038d7 100644 --- a/docs/classes/_questdb_nodejs-client.QwpResultBatch.html +++ b/docs/classes/_questdb_nodejs-client.QwpResultBatch.html @@ -1,4 +1,4 @@ -QwpResultBatch | QuestDB JavaScript Client - v5.0.0

Index

Constructors

constructor +QwpResultBatch | QuestDB JavaScript Client - v5.0.0
Index

Constructors

Properties

Methods

Constructors

Properties

batchSequence: bigint
columns: readonly QwpResultColumn[]
requestId: bigint
rowCount: number
tableName: string

Methods

+

Constructors

Properties

batchSequence: bigint
columns: readonly QwpResultColumn[]
requestId: bigint
rowCount: number
tableName: string

Methods

diff --git a/docs/classes/_questdb_nodejs-client.QwpResultBatchDecoder.html b/docs/classes/_questdb_nodejs-client.QwpResultBatchDecoder.html index 1bc2cde0..ae33c968 100644 --- a/docs/classes/_questdb_nodejs-client.QwpResultBatchDecoder.html +++ b/docs/classes/_questdb_nodejs-client.QwpResultBatchDecoder.html @@ -1,5 +1,5 @@ QwpResultBatchDecoder | QuestDB JavaScript Client - v5.0.0

Stateful decoder for connection-scoped QWP result batches.

-
Index

Constructors

Index

Constructors

Properties

Methods

absorbDictionary applyCacheReset @@ -17,7 +17,7 @@ only by QWP_MAX_CELLS_PER_BATCH times the pool size, which the cap's own comment puts at roughly half a gigabyte per slot.

Left undefined the batch is bounded by the cell cap alone, as before.

-

Methods

Methods

  • Applies the delta symbol dictionary carried by a batch whose rows are being discarded, without touching any per-query state.

    The dictionary is connection-scoped and cumulative: the server numbers entries from where the previous batch left off, on the connection rather @@ -31,9 +31,9 @@ asked for.

    The dictionary sits at the front of the body, so this reads only as far as it needs to and never decodes the rows it is throwing away.

    -

    Parameters

    Returns void

+

Parameters

Returns QwpResultBatchView

diff --git a/docs/classes/_questdb_nodejs-client.QwpResultBatchView.html b/docs/classes/_questdb_nodejs-client.QwpResultBatchView.html index 50943fb6..4aa17803 100644 --- a/docs/classes/_questdb_nodejs-client.QwpResultBatchView.html +++ b/docs/classes/_questdb_nodejs-client.QwpResultBatchView.html @@ -1,7 +1,7 @@ QwpResultBatchView | QuestDB JavaScript Client - v5.0.0

Batch-owned reusable view delivered by QwpEgressSession.queryViews(). Access is invalid after the callback returns. materialize() creates an independently owned QwpResultBatch when retention is required.

-
Index

Constructors

Index

Constructors

Accessors

Constructors

Accessors

Methods

  • Visits rows in index order with one re-pointed row view. The callback is +

Constructors

Accessors

Methods

  • Internal

    Parameters

    • requestId: bigint
    • batchSequence: bigint
    • tableName: string
    • rowCount: number
    • layouts: QwpResultColumnViewLayout[]

    Returns this

  • Internal

    Parameters

    • requestId: bigint
    • batchSequence: bigint
    • tableName: string
    • rowCount: number
    • layouts: QwpResultColumnViewLayout[]

    Returns this

+

Parameters

  • rowIndex: number

Returns QwpResultRowView

diff --git a/docs/classes/_questdb_nodejs-client.QwpResultColumnView.html b/docs/classes/_questdb_nodejs-client.QwpResultColumnView.html index 8cdbbe0e..27b07da7 100644 --- a/docs/classes/_questdb_nodejs-client.QwpResultColumnView.html +++ b/docs/classes/_questdb_nodejs-client.QwpResultColumnView.html @@ -2,7 +2,7 @@

The view and every byte slice returned from it are valid only while the surrounding queryViews() callback is running. Copy data that must outlive the callback.

-
Index

Constructors

Index

Constructors

Properties

Accessors

Constructors

Properties

columnIndex: number

Accessors

Methods

  • Raw packed non-null values. Fixed-width values use QWP little-endian +

Constructors

Properties

columnIndex: number

Accessors

Methods

  • Raw packed non-null values. Fixed-width values use QWP little-endian layout; booleans are bit-packed and variable-width columns contain their uint32 offset table. SYMBOL returns undefined because IDs are varints.

    -

    Returns Uint8Array<ArrayBufferLike>

+

Returns Uint8Array<ArrayBufferLike>

diff --git a/docs/classes/_questdb_nodejs-client.QwpResultRowView.html b/docs/classes/_questdb_nodejs-client.QwpResultRowView.html index d657aea2..1d39c57c 100644 --- a/docs/classes/_questdb_nodejs-client.QwpResultRowView.html +++ b/docs/classes/_questdb_nodejs-client.QwpResultRowView.html @@ -3,7 +3,7 @@ while the surrounding queryViews() callback is running, and must not be retained across forEachRow() iterations. Byte and array views returned by its accessors remain zero-copy and have the same lifetime.

-
Index

Constructors

Index

Constructors

Accessors

Methods

get @@ -29,10 +29,10 @@ getUuidLow isNull of -

Constructors

Accessors

Methods

+

Constructors

Accessors

Methods

diff --git a/docs/classes/_questdb_nodejs-client.QwpRoleMismatchError.html b/docs/classes/_questdb_nodejs-client.QwpRoleMismatchError.html index 273d3f5f..add6e8cf 100644 --- a/docs/classes/_questdb_nodejs-client.QwpRoleMismatchError.html +++ b/docs/classes/_questdb_nodejs-client.QwpRoleMismatchError.html @@ -1,5 +1,5 @@ QwpRoleMismatchError | QuestDB JavaScript Client - v5.0.0

A connected endpoint advertised a role that does not satisfy target.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
target: QwpTarget
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

-
tryNextEndpoint?: boolean
url?: string | URL
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
target: QwpTarget
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

+
tryNextEndpoint?: boolean
url?: string | URL
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes @@ -29,8 +29,8 @@

If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

Accessors

Methods

  • Creates a .stack property on targetObject, which when accessed returns +

    Returns boolean

Methods

diff --git a/docs/classes/_questdb_nodejs-client.QwpSenderCloseTimeoutError.html b/docs/classes/_questdb_nodejs-client.QwpSenderCloseTimeoutError.html index 5b6f968d..44ab070f 100644 --- a/docs/classes/_questdb_nodejs-client.QwpSenderCloseTimeoutError.html +++ b/docs/classes/_questdb_nodejs-client.QwpSenderCloseTimeoutError.html @@ -1,5 +1,5 @@ QwpSenderCloseTimeoutError | QuestDB JavaScript Client - v5.0.0

Class QwpSenderCloseTimeoutError

close() could not publish and acknowledge all committed ingress frames.

-

Hierarchy

  • Error
    • QwpSenderCloseTimeoutError
Index

Constructors

Hierarchy

  • Error
    • QwpSenderCloseTimeoutError
Index

Constructors

Properties

ackedSequence: bigint
cause?: unknown
message: string
name: string
stack?: string
targetSequence: bigint
timeoutMs: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

ackedSequence: bigint
cause?: unknown
message: string
name: string
stack?: string
targetSequence: bigint
timeoutMs: number
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpSymbolDictionary.html b/docs/classes/_questdb_nodejs-client.QwpSymbolDictionary.html index 9c927c76..4eaed335 100644 --- a/docs/classes/_questdb_nodejs-client.QwpSymbolDictionary.html +++ b/docs/classes/_questdb_nodejs-client.QwpSymbolDictionary.html @@ -1,5 +1,5 @@ QwpSymbolDictionary | QuestDB JavaScript Client - v5.0.0

Connection-scoped QWP symbol dictionary. IDs are dense from zero.

-
Index

Constructors

Index

Constructors

Accessors

Methods

Constructors

Accessors

Methods

+

Constructors

Accessors

Methods

diff --git a/docs/classes/_questdb_nodejs-client.QwpTableBuffer.html b/docs/classes/_questdb_nodejs-client.QwpTableBuffer.html index 3c4cf9f5..242e9fc8 100644 --- a/docs/classes/_questdb_nodejs-client.QwpTableBuffer.html +++ b/docs/classes/_questdb_nodejs-client.QwpTableBuffer.html @@ -1,5 +1,5 @@ QwpTableBuffer | QuestDB JavaScript Client - v5.0.0

Mutable columnar staging area for one QWP ingress table.

-
Index

Constructors

Index

Constructors

Properties

Accessors

Constructors

Properties

name: string

Accessors

Methods

  • Returns null when the current row already contains this column. The first +

Constructors

Properties

name: string

Accessors

Methods

  • Truncates every column back to the last completed row.

    Values are truncated to the committed watermark rather than popped once per non-null marker, because getOrCreateColumn() reserves the current cell as non-null before the caller appends its value. A setter that threw @@ -22,7 +22,7 @@ then deleted the previous completed row's value instead. The table kept that row's non-null marker, so encodeQwpIngressFrame() rejected the whole buffer with a value/marker count mismatch.

    -

    Returns void

+

Parameters

  • start: number
  • end: number

Returns QwpTableBuffer

diff --git a/docs/classes/_questdb_nodejs-client.QwpTableWriter.html b/docs/classes/_questdb_nodejs-client.QwpTableWriter.html index 238db9cf..8a978ca1 100644 --- a/docs/classes/_questdb_nodejs-client.QwpTableWriter.html +++ b/docs/classes/_questdb_nodejs-client.QwpTableWriter.html @@ -1,7 +1,7 @@ QwpTableWriter | QuestDB JavaScript Client - v5.0.0

Class QwpTableWriter<Schema>

A reusable table-bound writer compiled from a QWP schema.

-

Type Parameters

Index

Properties

Type Parameters

Index

Properties

Methods

Properties

tableName: string

Methods

+

Properties

tableName: string

Methods

diff --git a/docs/classes/_questdb_nodejs-client.QwpUdpDatagramTooLargeError.html b/docs/classes/_questdb_nodejs-client.QwpUdpDatagramTooLargeError.html index 848015e6..899048ad 100644 --- a/docs/classes/_questdb_nodejs-client.QwpUdpDatagramTooLargeError.html +++ b/docs/classes/_questdb_nodejs-client.QwpUdpDatagramTooLargeError.html @@ -1,5 +1,5 @@ QwpUdpDatagramTooLargeError | QuestDB JavaScript Client - v5.0.0

Class QwpUdpDatagramTooLargeError

A single encoded row cannot fit into the configured UDP datagram.

-

Hierarchy

  • Error
    • QwpUdpDatagramTooLargeError
Index

Constructors

Hierarchy

  • Error
    • QwpUdpDatagramTooLargeError
Index

Constructors

Properties

cause?: unknown
datagramSize: number
maxDatagramSize: number
message: string
name: string
row: number
stack?: string
tableName: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
datagramSize: number
maxDatagramSize: number
message: string
name: string
row: number
stack?: string
tableName: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpUnrecoverableReplayDictionaryError.html b/docs/classes/_questdb_nodejs-client.QwpUnrecoverableReplayDictionaryError.html index c43226a5..ced01239 100644 --- a/docs/classes/_questdb_nodejs-client.QwpUnrecoverableReplayDictionaryError.html +++ b/docs/classes/_questdb_nodejs-client.QwpUnrecoverableReplayDictionaryError.html @@ -1,6 +1,6 @@ QwpUnrecoverableReplayDictionaryError | QuestDB JavaScript Client - v5.0.0

Class QwpUnrecoverableReplayDictionaryError

Recovered delta frames depend on symbol IDs that neither the durable dictionary prefix nor the surviving frames can reconstruct.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

Methods

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/_questdb_nodejs-client.QwpUpgradeError.html b/docs/classes/_questdb_nodejs-client.QwpUpgradeError.html index bb33dc9a..c5ab070b 100644 --- a/docs/classes/_questdb_nodejs-client.QwpUpgradeError.html +++ b/docs/classes/_questdb_nodejs-client.QwpUpgradeError.html @@ -1,5 +1,5 @@ QwpUpgradeError | QuestDB JavaScript Client - v5.0.0

A failure while establishing or validating a QWP WebSocket upgrade.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

-
tryNextEndpoint?: boolean
url?: string | URL
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames +

Constructors

Properties

cause?: unknown
closeCode?: number
message: string
name: string
retryable?: boolean
serverRole?: string
serverZone?: string
stack?: string
statusCode?: number
statusMessage?: string
timeoutPhase?: QwpUpgradeTimeoutPhase

Node opening phase that exceeded its deadline.

+
tryNextEndpoint?: boolean
url?: string | URL
stackTraceLimit: number

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,8 +28,8 @@

If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

Accessors

Methods

Methods

  • Closes the row after writing the designated timestamp. On ILP, a row is discarded -- its columns and its table selection alike -- only when it can never be closed, which means it carries no symbol and no column; rows completed earlier remain staged, and the next row starts from @@ -159,7 +160,7 @@

    If timestamp is not an integer or BigInt.

    If unit is 'ns' but timestamp is not a BigInt.

    If unit is not one of 'ns', 'us', or 'ms'.

    -
  • Closes the row without writing a designated timestamp. Designated timestamp will be populated by the server on this record. On ILP, a row is discarded -- its columns and its table selection alike -- only when it can never be closed, which means it carries no symbol and no @@ -173,24 +174,24 @@ rows must retain and resubmit them. QWP retains successfully closed rows for its retry and replay path.

    Returns Promise<void>

    Resolves after the row is closed and any triggered auto-flush completes.

    -
  • Writes a boolean column with its value into the buffer of the sender.
    Use it to insert into BOOLEAN columns.

    Parameters

    • name: string

      Column name.

    • value: boolean

      Column value, accepts only boolean values. A null or undefined value omits the column entirely (stored as NULL).

    Returns Sender

    Returns with a reference to this sender.

    -
  • Discards the QWP row in progress, including its table selection, while retaining rows that were already completed. The next row starts from table again.

    Returns Sender

    Returns this sender.

    If this sender uses an ILP transport.

    -
  • Closes the connection to the database. QWP publishes completed rows and performs a bounded acknowledgement drain first. Other transports retain their legacy behavior and require an explicit flush().

    -

    Returns Promise<void>

  • Establishes the transport connection for TCP, TCPS, WS, WSS, and UDP. HTTP and HTTPS connect per request and reject this call because no explicit connection step is required.

    Returns Promise<boolean>

    Resolves to true if the client is connected.

    -
  • Writes a decimal value into the buffer using the binary format.

    +
  • Writes a decimal value into the buffer using the binary format.

    Use it to insert into DECIMAL database columns.

    Parameters

    • name: string

      Column name.

    • unscaled: bigint | Int8Array<ArrayBufferLike>

      The unscaled value of the decimal in two's @@ -209,7 +210,7 @@

    • scale is not an integer between 0 and 76
    • unscaled value contains invalid bytes
    -
  • Writes a decimal value into the buffer using the text format.

    Use it to insert into DECIMAL database columns.

    Parameters

    • name: string

      Column name.

    • value: string | number

      Column value, accepts only number/string values. A null or undefined value omits the column entirely when decimals are supported; ILP protocol v1/v2 reject the call for every value.

      @@ -218,18 +219,18 @@
      • string value is not a valid decimal representation
      -
  • Writes a 64-bit floating point value into the buffer of the sender.
    Use it to insert into DOUBLE or FLOAT database columns.

    Parameters

    • name: string

      Column name.

    • value: number

      Column value, accepts only number values. A null or undefined value omits the column entirely (stored as NULL).

    Returns Sender

    Returns with a reference to this sender.

    -
  • Sends the content of the sender's buffer to the database and compacts the buffer. If the last row is not finished it stays in the sender's buffer.

    Returns Promise<boolean>

    Resolves to true when there was data in the buffer to send, and it was sent successfully.

    -
  • Flushes pending rows and returns the highest QWP frame sequence published by this call, or -1n when it published nothing. Non-QWP transports flush normally and return -1n because they do not expose frame sequences.

    -

    Returns Promise<bigint>

  • Flushes pending rows and, for QWP, waits until the server has acknowledged +

    Returns Promise<bigint>

  • Flushes pending rows and, for QWP, waits until the server has acknowledged every frame this sender has published, including the frames a store-and-forward journal recovered once the sender has connected. Resolves false when the QWP ACK watermark makes no progress for @@ -238,30 +239,30 @@ timeoutMs of zero or less flushes and then checks without waiting. Non-QWP transports flush normally and resolve true: they expose no ACK watermark to wait on.

    -

    Parameters

    • OptionaltimeoutMs: number

    Returns Promise<boolean>

  • Writes a 64-bit signed integer into the buffer of the sender.
    Use it to insert into LONG, INT, SHORT and BYTE columns.

    Parameters

    • name: string

      Column name.

    • value: number | bigint

      Column value, accepts integer or BigInt values. LONG is a 64-bit signed integer, which is wider than the safe integer range of number, so pass a BigInt beyond Number.MAX_SAFE_INTEGER to avoid losing precision. A null or undefined value omits the column entirely (stored as NULL).

    Returns Sender

    Returns with a reference to this sender.

    Error if the value is not an integer or a BigInt

    RangeError if the value does not fit into a 64-bit signed integer

    -
  • Resets the sender's buffer, data sitting in the buffer will be lost.
    In other words it clears the buffer, and sets the writing position to the beginning of the buffer.

    Returns Sender

    Returns with a reference to this sender.

    -
  • Writes a string column with its value into the buffer of the sender.
    Use it to insert into VARCHAR and STRING columns.

    Parameters

    • name: string

      Column name.

    • value: string

      Column value, accepts only string values. A null or undefined value omits the column entirely (stored as NULL).

    Returns Sender

    Returns with a reference to this sender.

    -
  • Writes a symbol name and value into the buffer of the sender.
    Use it to insert into SYMBOL columns.

    Parameters

    • name: string

      Symbol name.

    • value: unknown

      Symbol value, toString() is called to extract the actual symbol value from the parameter. A null or undefined value omits the symbol entirely (stored as NULL).

    Returns Sender

    Returns with a reference to this sender.

    -
  • Writes a timestamp column and its value into the buffer of the sender.

    Use this method to insert data into TIMESTAMP or TIMESTAMP_NS columns.

    Precision rules:

      @@ -283,31 +284,35 @@

Returns Sender

Returns with a reference to this buffer.

If value is not an integer or BigInt.

If unit is 'ns' but value is not a BigInt.

-
  • Waits until the cumulative QWP ACK watermark covers a frame sequence, such as one returned by flushAndGetSequence(). Resolves true once it does, and false when the watermark makes no progress for timeoutMs (the session's ackTimeoutMs by default); a timeoutMs of zero or less checks without waiting. Non-QWP transports resolve true for a negative sequence, which flushAndGetSequence() returns for them.

    -

    Parameters

    • targetSequence: bigint
    • OptionaltimeoutMs: number

    Returns Promise<boolean>

  • Creates a Sender object by parsing the provided configuration string.

    Parameters

    • configurationString: string

      Configuration string.

    • OptionalextraOptions: ExtraOptions

      Optional extra configuration.

      • 'log' is a logging function used by the Sender. Prototype: (level: 'error'|'warn'|'info'|'debug', message: string) => void.
      • 'agent' is a custom http/https agent used by the Sender when http/https transport is used. -Depends on which transport implementation and protocol used, one of the followings expected: undici.Agent, http.Agent or https.Agent.
      • +Depends on which transport implementation and protocol used, one of the followings expected: undici.Agent, http.Agent or https.Agent.
        +
      • 'jwk' is a complete EC P-256 private JWK for TCP/TCPS authentication, including 'kid', 'd', 'x' and 'y'. +It takes precedence over 'username'/'token' in the configuration string and is rejected for other transports.

    Returns Promise<Sender>

    A Sender object initialized from the provided configuration string.

    -
  • Creates a Sender object by parsing the configuration string set in the QDB_CLIENT_CONF environment variable.

    Parameters

    • OptionalextraOptions: ExtraOptions

      Optional extra configuration.

      • 'log' is a logging function used by the Sender. Prototype: (level: 'error'|'warn'|'info'|'debug', message: string) => void.
      • 'agent' is a custom http/https agent used by the Sender when http/https transport is used. -Depends on which transport implementation and protocol used, one of the followings expected: undici.Agent, http.Agent or https.Agent.
      • +Depends on which transport implementation and protocol used, one of the followings expected: undici.Agent, http.Agent or https.Agent.
        +
      • 'jwk' is a complete EC P-256 private JWK for TCP/TCPS authentication, including 'kid', 'd', 'x' and 'y'. +It takes precedence over 'username'/'token' in the configuration string and is rejected for other transports.

    Returns Promise<Sender>

    A Sender object initialized from the QDB_CLIENT_CONF environment variable.

    -
+
diff --git a/docs/classes/_questdb_nodejs-client.SenderBufferV1.html b/docs/classes/_questdb_nodejs-client.SenderBufferV1.html index 96caa124..c58ec46f 100644 --- a/docs/classes/_questdb_nodejs-client.SenderBufferV1.html +++ b/docs/classes/_questdb_nodejs-client.SenderBufferV1.html @@ -1,6 +1,6 @@ SenderBufferV1 | QuestDB JavaScript Client - v5.0.0

Buffer implementation for protocol version 1.
Sends floating point numbers in their text form.

-

Hierarchy

  • SenderBufferBase
    • SenderBufferV1
Index

Constructors

Hierarchy

  • SenderBufferBase
    • SenderBufferV1
Index

Constructors

Properties

buffer log position @@ -25,13 +25,13 @@

Constructors

Properties

buffer: Buffer
log: Logger
position: number

Methods

  • Array columns are not supported in protocol v1.
    +

Returns SenderBufferV1

Properties

buffer: Buffer
log: Logger
position: number

Methods

  • Array columns are not supported in protocol v1.
    The capability check applies even when the value is null or undefined.

    Parameters

    • name: string

      Column name.

    • value: unknown[]

      Array values.

    Returns SenderBuffer

    Returns with a reference to this buffer.

    Error indicating arrays are not supported in v1

    -
  • Closes the row after writing the designated timestamp into the buffer.

    Precision rules:

    • Protocol v2 and higher: @@ -61,19 +61,19 @@

    If the row cannot be closed within max_buf_size. The partial close is rewound, so the same call succeeds once a flush() frees space.

    -
  • Closes the row without writing designated timestamp into the buffer.
    Designated timestamp will be populated by the server on this record.

    -

    Returns void

  • Writes a boolean column with its value into the buffer.
    Use it to insert into BOOLEAN columns.

    Parameters

    • name: string

      Column name.

    • value: boolean

      Column value, accepts only boolean values. A null or undefined value omits the column entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    -
  • Checks if the buffer has sufficient capacity for additional data and resizes if needed.

    +
  • Checks if the buffer has sufficient capacity for additional data and resizes if needed.

    Parameters

    • data: string[]

      Array of strings to calculate the required capacity for

    • base: number = 0

      Base number of bytes to add to the calculation

      -

    Returns void

  • Returns the current position of the buffer.
    +

Returns void

  • Returns the current position of the buffer.
    New data will be written into the buffer starting from this position.

    -

    Returns number

  • Writes a decimal value into the buffer using its binary format.

    +

    Returns number

  • Writes a decimal value into the buffer using its binary format.

    Use it to insert into DECIMAL database columns.

    Decimals are not supported by protocol v1/v2, so this base implementation rejects the call even when the value is null or undefined. Protocol v3 @@ -86,7 +86,7 @@

    If scale is not an integer between 0 and 76. Scale validation runs even when unscaled is null or undefined.

    Indicating decimals are not supported in protocol v1/v2.

    -
  • Writes a decimal value into the buffer using its text format.

    Use it to insert into DECIMAL database columns.

    Decimals are not supported by protocol v1/v2, so this base implementation rejects the call even when the value is null or undefined. Protocol v3 @@ -96,35 +96,35 @@ write.

Returns SenderBuffer

Returns with a reference to this buffer.

Indicating decimals are not supported in protocol v1/v2.

-
  • Writes a 64-bit floating point value into the buffer using v1 serialization (text format).
    Use it to insert into DOUBLE or FLOAT database columns.

    Parameters

    • name: string

      Column name.

    • value: number

      Column value, accepts only number values. A null or undefined value omits the column entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this sender.

    -
  • Writes a 64-bit signed integer into the buffer.
    Use it to insert into LONG, INT, SHORT and BYTE columns.

    Parameters

    • name: string

      Column name.

    • value: number | bigint

      Column value, accepts integer or BigInt values. LONG is a 64-bit signed integer, which is wider than the safe integer range of number, so pass a BigInt beyond Number.MAX_SAFE_INTEGER to avoid losing precision. A null or undefined value omits the column entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    Error if the value is not an integer or a BigInt

    RangeError if the value does not fit into a 64-bit signed integer

    -
  • Writes a string column with its value into the buffer.
    Use it to insert into VARCHAR and STRING columns.

    Parameters

    • name: string

      Column name.

    • value: string

      Column value, accepts only string values. A null or undefined value omits the column entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    -
  • Writes a symbol name and value into the buffer.
    Use it to insert into SYMBOL columns.

    Parameters

    • name: string

      Symbol name.

    • value: unknown

      Symbol value, toString() is called to extract the actual symbol value from the parameter. A null or undefined value omits the symbol entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    -
  • Writes a timestamp column and its value into the buffer.

    Use this method to insert data into TIMESTAMP or TIMESTAMP_NS columns.

    Precision rules:

      @@ -148,10 +148,10 @@ even when value is null or undefined).

    If value is not an integer or BigInt.

    If unit is 'ns' but value is not a BigInt.

    -
  • Parameters

    • pos: number = ...

    Returns Buffer

    Returns a cropped buffer ready to send to the server, or null if there is nothing to send.
    +

  • Parameters

    • pos: number = ...

    Returns Buffer

    Returns a cropped buffer ready to send to the server, or null if there is nothing to send.
    The returned buffer is a copy of this buffer. It also compacts the buffer.

    -
  • Parameters

    • pos: number = ...

    Returns Buffer

    Returns a cropped buffer, or null if there is nothing to send.
    +

  • Parameters

    • pos: number = ...

    Returns Buffer

    Returns a cropped buffer, or null if there is nothing to send.
    The returned buffer is backed by this buffer instance, meaning the view can change as the buffer is mutated. Used only in tests to assert the buffer's content.

    -
+
diff --git a/docs/classes/_questdb_nodejs-client.SenderBufferV2.html b/docs/classes/_questdb_nodejs-client.SenderBufferV2.html index 759c4e24..9776663a 100644 --- a/docs/classes/_questdb_nodejs-client.SenderBufferV2.html +++ b/docs/classes/_questdb_nodejs-client.SenderBufferV2.html @@ -1,6 +1,6 @@ SenderBufferV2 | QuestDB JavaScript Client - v5.0.0

Buffer implementation for protocol version 2.
Sends floating point numbers in binary form, and provides support for arrays.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

buffer log position @@ -25,7 +25,7 @@

Constructors

Properties

buffer: Buffer
log: Logger
position: number

Methods

  • Write an array column with its values into the buffer using v2 format.

    +

Returns SenderBufferV2

Properties

buffer: Buffer
log: Logger
position: number

Methods

  • Write an array column with its values into the buffer using v2 format.

    Parameters

    • name: string

      Column name

    • value: unknown[]

      Array values to write (currently supports double arrays). A null or undefined value omits the column entirely, storing NULL.

    Returns SenderBuffer

    Returns with a reference to this buffer.

    @@ -35,7 +35,7 @@
  • or the shape of the array is irregular: the length of sub-arrays are different
  • or the array is not homogeneous: its elements are not all the same type
-
  • Closes the row after writing the designated timestamp into the buffer.

    Precision rules:

    • Protocol v2 and higher: @@ -65,19 +65,19 @@

    If the row cannot be closed within max_buf_size. The partial close is rewound, so the same call succeeds once a flush() frees space.

    -
  • Closes the row without writing designated timestamp into the buffer.
    Designated timestamp will be populated by the server on this record.

    -

    Returns void

  • Writes a boolean column with its value into the buffer.
    Use it to insert into BOOLEAN columns.

    Parameters

    • name: string

      Column name.

    • value: boolean

      Column value, accepts only boolean values. A null or undefined value omits the column entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    -
  • Checks if the buffer has sufficient capacity for additional data and resizes if needed.

    +
  • Checks if the buffer has sufficient capacity for additional data and resizes if needed.

    Parameters

    • data: string[]

      Array of strings to calculate the required capacity for

    • base: number = 0

      Base number of bytes to add to the calculation

      -

    Returns void

  • Returns the current position of the buffer.
    +

Returns void

  • Returns the current position of the buffer.
    New data will be written into the buffer starting from this position.

    -

    Returns number

  • Writes a decimal value into the buffer using its binary format.

    +

    Returns number

  • Writes a decimal value into the buffer using its binary format.

    Use it to insert into DECIMAL database columns.

    Decimals are not supported by protocol v1/v2, so this base implementation rejects the call even when the value is null or undefined. Protocol v3 @@ -90,7 +90,7 @@

    If scale is not an integer between 0 and 76. Scale validation runs even when unscaled is null or undefined.

    Indicating decimals are not supported in protocol v1/v2.

    -
  • Writes a decimal value into the buffer using its text format.

    Use it to insert into DECIMAL database columns.

    Decimals are not supported by protocol v1/v2, so this base implementation rejects the call even when the value is null or undefined. Protocol v3 @@ -100,35 +100,35 @@ write.

Returns SenderBuffer

Returns with a reference to this buffer.

Indicating decimals are not supported in protocol v1/v2.

-
  • Writes a 64-bit floating point value into the buffer using v2 serialization (binary format).
    Use it to insert into DOUBLE or FLOAT database columns.

    Parameters

    • name: string

      Column name.

    • value: number

      Column value, accepts only number values. A null or undefined value omits the column entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    -
  • Writes a 64-bit signed integer into the buffer.
    Use it to insert into LONG, INT, SHORT and BYTE columns.

    Parameters

    • name: string

      Column name.

    • value: number | bigint

      Column value, accepts integer or BigInt values. LONG is a 64-bit signed integer, which is wider than the safe integer range of number, so pass a BigInt beyond Number.MAX_SAFE_INTEGER to avoid losing precision. A null or undefined value omits the column entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    Error if the value is not an integer or a BigInt

    RangeError if the value does not fit into a 64-bit signed integer

    -
  • Writes a string column with its value into the buffer.
    Use it to insert into VARCHAR and STRING columns.

    Parameters

    • name: string

      Column name.

    • value: string

      Column value, accepts only string values. A null or undefined value omits the column entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    -
  • Writes a symbol name and value into the buffer.
    Use it to insert into SYMBOL columns.

    Parameters

    • name: string

      Symbol name.

    • value: unknown

      Symbol value, toString() is called to extract the actual symbol value from the parameter. A null or undefined value omits the symbol entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    -
  • Writes a timestamp column and its value into the buffer.

    Use this method to insert data into TIMESTAMP or TIMESTAMP_NS columns.

    Precision rules:

      @@ -152,10 +152,10 @@ even when value is null or undefined).

    If value is not an integer or BigInt.

    If unit is 'ns' but value is not a BigInt.

    -
  • Parameters

    • pos: number = ...

    Returns Buffer

    Returns a cropped buffer ready to send to the server, or null if there is nothing to send.
    +

  • Parameters

    • pos: number = ...

    Returns Buffer

    Returns a cropped buffer ready to send to the server, or null if there is nothing to send.
    The returned buffer is a copy of this buffer. It also compacts the buffer.

    -
  • Parameters

    • pos: number = ...

    Returns Buffer

    Returns a cropped buffer, or null if there is nothing to send.
    +

  • Parameters

    • pos: number = ...

    Returns Buffer

    Returns a cropped buffer, or null if there is nothing to send.
    The returned buffer is backed by this buffer instance, meaning the view can change as the buffer is mutated. Used only in tests to assert the buffer's content.

    -
+
diff --git a/docs/classes/_questdb_nodejs-client.SenderBufferV3.html b/docs/classes/_questdb_nodejs-client.SenderBufferV3.html index a18fe2c3..4fe5a2fa 100644 --- a/docs/classes/_questdb_nodejs-client.SenderBufferV3.html +++ b/docs/classes/_questdb_nodejs-client.SenderBufferV3.html @@ -1,6 +1,6 @@ SenderBufferV3 | QuestDB JavaScript Client - v5.0.0

Buffer implementation for protocol version 3.

Provides support for decimals.

-

Hierarchy (View Summary)

Index

Constructors

Hierarchy (View Summary)

Index

Constructors

Properties

buffer log position @@ -25,7 +25,7 @@

Constructors

Properties

buffer: Buffer
log: Logger
position: number

Methods

  • Write an array column with its values into the buffer using v2 format.

    +

Returns SenderBufferV3

Properties

buffer: Buffer
log: Logger
position: number

Methods

  • Write an array column with its values into the buffer using v2 format.

    Parameters

    • name: string

      Column name

    • value: unknown[]

      Array values to write (currently supports double arrays). A null or undefined value omits the column entirely, storing NULL.

    Returns SenderBuffer

    Returns with a reference to this buffer.

    @@ -35,7 +35,7 @@
  • or the shape of the array is irregular: the length of sub-arrays are different
  • or the array is not homogeneous: its elements are not all the same type
-
  • Closes the row after writing the designated timestamp into the buffer.

    Precision rules:

    • Protocol v2 and higher: @@ -65,19 +65,19 @@

    If the row cannot be closed within max_buf_size. The partial close is rewound, so the same call succeeds once a flush() frees space.

    -
  • Checks if the buffer has sufficient capacity for additional data and resizes if needed.

    Parameters

    • data: string[]

      Array of strings to calculate the required capacity for

    • base: number = 0

      Base number of bytes to add to the calculation

      -

    Returns void

  • Returns the current position of the buffer.
    +

Returns void

  • Writes a decimal value into the buffer using its binary format.

    Use it to insert into DECIMAL database columns.

    Parameters

    • name: string

      Column name.

    • unscaled: bigint | Int8Array<ArrayBufferLike>

      The unscaled integer portion of the decimal value.

      @@ -96,7 +96,7 @@
    • scale is not an integer between 0 and 76.
    • unscaled contains invalid bytes.
    -
  • Writes a 64-bit floating point value into the buffer using v2 serialization (binary format).
    Use it to insert into DOUBLE or FLOAT database columns.

    Parameters

    • name: string

      Column name.

    • value: number

      Column value, accepts only number values. A null or undefined value omits the column entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    -
  • Writes a 64-bit signed integer into the buffer.
    Use it to insert into LONG, INT, SHORT and BYTE columns.

    Parameters

    • name: string

      Column name.

    • value: number | bigint

      Column value, accepts integer or BigInt values. LONG is a 64-bit signed integer, which is wider than the safe integer range of number, so pass a BigInt beyond Number.MAX_SAFE_INTEGER to avoid losing precision. A null or undefined value omits the column entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    Error if the value is not an integer or a BigInt

    RangeError if the value does not fit into a 64-bit signed integer

    -
  • Writes a string column with its value into the buffer.
    Use it to insert into VARCHAR and STRING columns.

    Parameters

    • name: string

      Column name.

    • value: string

      Column value, accepts only string values. A null or undefined value omits the column entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    -
  • Writes a symbol name and value into the buffer.
    Use it to insert into SYMBOL columns.

    Parameters

    • name: string

      Symbol name.

    • value: unknown

      Symbol value, toString() is called to extract the actual symbol value from the parameter. A null or undefined value omits the symbol entirely (stored as NULL).

    Returns SenderBuffer

    Returns with a reference to this buffer.

    -
  • Writes a timestamp column and its value into the buffer.

    Use this method to insert data into TIMESTAMP or TIMESTAMP_NS columns.

    Precision rules:

      @@ -162,10 +162,10 @@ even when value is null or undefined).

    If value is not an integer or BigInt.

    If unit is 'ns' but value is not a BigInt.

    -
  • Parameters

    • pos: number = ...

    Returns Buffer

    Returns a cropped buffer, or null if there is nothing to send.
    The returned buffer is backed by this buffer instance, meaning the view can change as the buffer is mutated. Used only in tests to assert the buffer's content.

    -
+
diff --git a/docs/classes/_questdb_nodejs-client.SenderOptions.html b/docs/classes/_questdb_nodejs-client.SenderOptions.html index b97d885b..4b0b07cd 100644 --- a/docs/classes/_questdb_nodejs-client.SenderOptions.html +++ b/docs/classes/_questdb_nodejs-client.SenderOptions.html @@ -124,7 +124,7 @@ Supported by the udp transport only. A connection string rejects it on every other transport, and ws/wss reject it however the sender was built. -
Index

Constructors

Index

Constructors

Properties

addr? agent? auth? @@ -168,31 +168,37 @@
  • 'log' is a logging function used by the Sender. Prototype: (level: 'error'|'warn'|'info'|'debug', message: string) => void.
  • 'agent' is a custom http/https agent used by the Sender when http/https transport is used. -Depends on which transport implementation and protocol used, one of the followings expected: undici.Agent, http.Agent or https.Agent.
  • +Depends on which transport implementation and protocol used, one of the followings expected: undici.Agent, http.Agent or https.Agent.
    +
  • 'jwk' is a complete EC P-256 private JWK for TCP/TCPS authentication, including 'kid', 'd', 'x' and 'y'. +It takes precedence over 'username'/'token' in the configuration string and is rejected for other transports.
  • -

    Returns SenderOptions

    Properties

    addr?: string
    agent?: Agent | Agent | Agent
    auth?: { keyId?: string; password?: string; token?: string; username?: string }
    auto_flush?: boolean
    auto_flush_bytes?: number
    auto_flush_interval?: number
    auto_flush_rows?: number
    host?: string
    init_buf_size?: number
    jwk?: Record<string, string>
    log?: Logger
    max_buf_size?: number
    max_datagram_size?: number
    max_name_len?: number
    multicast_ttl?: number
    password?: string
    port?: number
    protocol: string
    protocol_version?: string
    request_min_throughput?: number
    request_timeout?: number
    retry_timeout?: number
    stdlib_http?: boolean
    tls_ca?: PathOrFileDescriptor
    tls_roots?: never
    tls_roots_password?: never
    tls_verify?: boolean
    token?: string
    token_x?: string
    token_y?: string
    username?: string

    Methods

    • Creates a Sender options object by parsing the provided configuration string.

      +

    Returns SenderOptions

    Properties

    addr?: string
    agent?: Agent | Agent | Agent
    auth?: { keyId?: string; password?: string; token?: string; username?: string }
    auto_flush?: boolean
    auto_flush_bytes?: number
    auto_flush_interval?: number
    auto_flush_rows?: number
    host?: string
    init_buf_size?: number
    jwk?: Record<string, string>
    log?: Logger
    max_buf_size?: number
    max_datagram_size?: number
    max_name_len?: number
    multicast_ttl?: number
    password?: string
    port?: number
    protocol: string
    protocol_version?: string
    request_min_throughput?: number
    request_timeout?: number
    retry_timeout?: number
    stdlib_http?: boolean
    tls_ca?: PathOrFileDescriptor
    tls_roots?: never
    tls_roots_password?: never
    tls_verify?: boolean
    token?: string
    token_x?: string
    token_y?: string
    username?: string

    Methods

    • Creates a Sender options object by parsing the provided configuration string.

      Parameters

      • configurationString: string

        Configuration string.

      • OptionalextraOptions: ExtraOptions

        Optional extra configuration.

        • 'log' is a logging function used by the Sender. Prototype: (level: 'error'|'warn'|'info'|'debug', message: string) => void.
        • 'agent' is a custom http/https agent used by the Sender when http/https transport is used. -Depends on which transport implementation and protocol used, one of the followings expected: undici.Agent, http.Agent or https.Agent.
        • +Depends on which transport implementation and protocol used, one of the followings expected: undici.Agent, http.Agent or https.Agent.
          +
        • 'jwk' is a complete EC P-256 private JWK for TCP/TCPS authentication, including 'kid', 'd', 'x' and 'y'. +It takes precedence over 'username'/'token' in the configuration string and is rejected for other transports.

      Returns Promise<SenderOptions>

      A Sender configuration object initialized from the provided configuration string.

      -
    • Creates a Sender options object by parsing the configuration string set in the QDB_CLIENT_CONF environment variable.

      Parameters

      • OptionalextraOptions: ExtraOptions

        Optional extra configuration.

        • 'log' is a logging function used by the Sender. Prototype: (level: 'error'|'warn'|'info'|'debug', message: string) => void.
        • 'agent' is a custom http/https agent used by the Sender when http/https transport is used. -Depends on which transport implementation and protocol used, one of the followings expected: undici.Agent, http.Agent or https.Agent.
        • +Depends on which transport implementation and protocol used, one of the followings expected: undici.Agent, http.Agent or https.Agent.
          +
        • 'jwk' is a complete EC P-256 private JWK for TCP/TCPS authentication, including 'kid', 'd', 'x' and 'y'. +It takes precedence over 'username'/'token' in the configuration string and is rejected for other transports.

      Returns Promise<SenderOptions>

      A Sender configuration object initialized from the QDB_CLIENT_CONF environment variable.

      -
    • Resolves the protocol version, if it is set to 'auto'.
      If TCP transport is used, the protocol version will default to 1. In case of HTTP transport the /settings endpoint of the database is used to find the protocol versions supported by the server, and the highest will be selected. When calling the /settings endpoint the timeout and TLS options are used from the options object.

      Parameters

      • options: SenderOptions

        SenderOptions instance needs resolving protocol version

        -

      Returns Promise<SenderOptions>

    +

    Returns Promise<SenderOptions>

    diff --git a/docs/classes/_questdb_nodejs-client.TcpTransport.html b/docs/classes/_questdb_nodejs-client.TcpTransport.html index a91676bc..4ae0a34b 100644 --- a/docs/classes/_questdb_nodejs-client.TcpTransport.html +++ b/docs/classes/_questdb_nodejs-client.TcpTransport.html @@ -1,6 +1,6 @@ TcpTransport | QuestDB JavaScript Client - v5.0.0

    TCP transport implementation.
    Supports both plain TCP or secure TLS-encrypted connections with configurable JWK token authentication.

    -

    Implements

    Index

    Constructors

    Implements

    Index

    Constructors

    Methods

    Constructors

    Methods

    Methods

    • Sends data over the established TCP connection.

      Parameters

      • data: Buffer

        Buffer containing the data to send

      Returns Promise<boolean>

      Promise resolving to true if data was sent successfully

      Error if the data could not be written to the socket

      -
    +
    diff --git a/docs/classes/_questdb_nodejs-client.UndiciTransport.html b/docs/classes/_questdb_nodejs-client.UndiciTransport.html index 064280a0..5d4bbbcd 100644 --- a/docs/classes/_questdb_nodejs-client.UndiciTransport.html +++ b/docs/classes/_questdb_nodejs-client.UndiciTransport.html @@ -1,7 +1,7 @@ UndiciTransport | QuestDB JavaScript Client - v5.0.0

    HTTP transport implementation using the Undici library.
    Provides high-performance HTTP requests with connection pooling and retry logic.
    Supports both HTTP and HTTPS protocols with configurable authentication.

    -

    Hierarchy

    • HttpTransportBase
      • UndiciTransport
    Index

    Constructors

    Hierarchy

    • HttpTransportBase
      • UndiciTransport
    Index

    Constructors

    Properties

    host log password @@ -21,14 +21,14 @@

    Constructors

    Properties

    host: string
    log: Logger
    password: string
    port: number
    requestMinThroughput: number
    requestTimeout: number
    retryTimeout: number
    secure: boolean
    tlsCA: Buffer
    tlsVerify: boolean
    token: string
    username: string

    Methods

    Properties

    host: string
    log: Logger
    password: string
    port: number
    requestMinThroughput: number
    requestTimeout: number
    retryTimeout: number
    secure: boolean
    tlsCA: Buffer
    tlsVerify: boolean
    token: string
    username: string

    Methods

    • HTTP transport does not require explicit connection establishment.

      Returns Promise<boolean>

      Error indicating connect is not required for HTTP transport

      -
    • Gets the default auto-flush row count for HTTP transport.

      Returns number

      Default number of rows that trigger auto-flush

      -
    • Sends data to QuestDB using HTTP POST.

      Parameters

      • data: Buffer

        Buffer containing the data to send

      Returns Promise<boolean>

      Promise resolving to true if data was sent successfully

      Error if request fails after all retries or times out

      -
    +
    diff --git a/docs/functions/_questdb_browser-client.addQwpDurableAckWebSocketProtocol.html b/docs/functions/_questdb_browser-client.addQwpDurableAckWebSocketProtocol.html index 6a5c8d52..7a2c3210 100644 --- a/docs/functions/_questdb_browser-client.addQwpDurableAckWebSocketProtocol.html +++ b/docs/functions/_questdb_browser-client.addQwpDurableAckWebSocketProtocol.html @@ -1,2 +1,2 @@ addQwpDurableAckWebSocketProtocol | QuestDB JavaScript Client - v5.0.0

    Function addQwpDurableAckWebSocketProtocol

    • Adds the durable-ACK capability token without mutating user options.

      -

      Parameters

      • protocols: undefined | string | readonly string[]

      Returns string | string[]

    +

    Parameters

    • protocols: undefined | string | readonly string[]

    Returns string | string[]

    diff --git a/docs/functions/_questdb_browser-client.binary.html b/docs/functions/_questdb_browser-client.binary.html index 1e157000..068335b8 100644 --- a/docs/functions/_questdb_browser-client.binary.html +++ b/docs/functions/_questdb_browser-client.binary.html @@ -1,2 +1,2 @@ binary | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<Uint8Array<ArrayBufferLike>>

    diff --git a/docs/functions/_questdb_browser-client.bool.html b/docs/functions/_questdb_browser-client.bool.html index 3305654f..fbae1263 100644 --- a/docs/functions/_questdb_browser-client.bool.html +++ b/docs/functions/_questdb_browser-client.bool.html @@ -1,2 +1,2 @@ bool | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<boolean>

    diff --git a/docs/functions/_questdb_browser-client.bootstrapQwpBrowserSession.html b/docs/functions/_questdb_browser-client.bootstrapQwpBrowserSession.html index 1008d1a6..ce1c3e86 100644 --- a/docs/functions/_questdb_browser-client.bootstrapQwpBrowserSession.html +++ b/docs/functions/_questdb_browser-client.bootstrapQwpBrowserSession.html @@ -2,4 +2,4 @@ browser needs before opening QWP WebSockets. REST and OIDC tokens both use Bearer authentication. When serviceAccount is present the same request also creates Enterprise's qdbServiceAccount impersonation cookie.

    -

    Returns Promise<QwpBrowserSessionBootstrapResult>

    +

    Returns Promise<QwpBrowserSessionBootstrapResult>

    diff --git a/docs/functions/_questdb_browser-client.byte.html b/docs/functions/_questdb_browser-client.byte.html index b8259652..03d912ed 100644 --- a/docs/functions/_questdb_browser-client.byte.html +++ b/docs/functions/_questdb_browser-client.byte.html @@ -1,2 +1,2 @@ byte | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number>

    diff --git a/docs/functions/_questdb_browser-client.char.html b/docs/functions/_questdb_browser-client.char.html index c3217e54..ab34c63a 100644 --- a/docs/functions/_questdb_browser-client.char.html +++ b/docs/functions/_questdb_browser-client.char.html @@ -1,2 +1,2 @@ char | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<string>

    diff --git a/docs/functions/_questdb_browser-client.concatBytes.html b/docs/functions/_questdb_browser-client.concatBytes.html index 2bf22eeb..0cf88b98 100644 --- a/docs/functions/_questdb_browser-client.concatBytes.html +++ b/docs/functions/_questdb_browser-client.concatBytes.html @@ -1 +1 @@ -concatBytes | QuestDB JavaScript Client - v5.0.0
    +concatBytes | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_browser-client.connectQwpBrowserClient.html b/docs/functions/_questdb_browser-client.connectQwpBrowserClient.html index 6cfbd61f..ebc06e3c 100644 --- a/docs/functions/_questdb_browser-client.connectQwpBrowserClient.html +++ b/docs/functions/_questdb_browser-client.connectQwpBrowserClient.html @@ -1,2 +1,2 @@ connectQwpBrowserClient | QuestDB JavaScript Client - v5.0.0

    Function connectQwpBrowserClient

    +

    Parameters

    Returns Promise<QwpClient>

    diff --git a/docs/functions/_questdb_browser-client.connectQwpBrowserEgress.html b/docs/functions/_questdb_browser-client.connectQwpBrowserEgress.html index 9b79f1bb..4ea16ed7 100644 --- a/docs/functions/_questdb_browser-client.connectQwpBrowserEgress.html +++ b/docs/functions/_questdb_browser-client.connectQwpBrowserEgress.html @@ -1,3 +1,3 @@ connectQwpBrowserEgress | QuestDB JavaScript Client - v5.0.0

    Function connectQwpBrowserEgress

    +

    Returns Promise<QwpEgressSession>

    diff --git a/docs/functions/_questdb_browser-client.connectQwpBrowserSender.html b/docs/functions/_questdb_browser-client.connectQwpBrowserSender.html index e577204b..cb4bca27 100644 --- a/docs/functions/_questdb_browser-client.connectQwpBrowserSender.html +++ b/docs/functions/_questdb_browser-client.connectQwpBrowserSender.html @@ -1,2 +1,2 @@ connectQwpBrowserSender | QuestDB JavaScript Client - v5.0.0

    Function connectQwpBrowserSender

    +

    Parameters

    Returns Promise<QwpSender>

    diff --git a/docs/functions/_questdb_browser-client.createQwpBrowserClient.html b/docs/functions/_questdb_browser-client.createQwpBrowserClient.html index 53123fd3..e7efed31 100644 --- a/docs/functions/_questdb_browser-client.createQwpBrowserClient.html +++ b/docs/functions/_questdb_browser-client.createQwpBrowserClient.html @@ -1,2 +1,2 @@ createQwpBrowserClient | QuestDB JavaScript Client - v5.0.0

    Function createQwpBrowserClient

    +

    Parameters

    Returns QwpClient

    diff --git a/docs/functions/_questdb_browser-client.createQwpBrowserSender.html b/docs/functions/_questdb_browser-client.createQwpBrowserSender.html index a077ac65..ef8096a4 100644 --- a/docs/functions/_questdb_browser-client.createQwpBrowserSender.html +++ b/docs/functions/_questdb_browser-client.createQwpBrowserSender.html @@ -1,3 +1,3 @@ createQwpBrowserSender | QuestDB JavaScript Client - v5.0.0

    Function createQwpBrowserSender

    +

    Parameters

    Returns QwpSender

    diff --git a/docs/functions/_questdb_browser-client.createQwpDataLossSenderError.html b/docs/functions/_questdb_browser-client.createQwpDataLossSenderError.html index beb5b5c9..16868e9f 100644 --- a/docs/functions/_questdb_browser-client.createQwpDataLossSenderError.html +++ b/docs/functions/_questdb_browser-client.createQwpDataLossSenderError.html @@ -1,2 +1,2 @@ createQwpDataLossSenderError | QuestDB JavaScript Client - v5.0.0

    Function createQwpDataLossSenderError

    +

    Returns QwpSenderError

    diff --git a/docs/functions/_questdb_browser-client.createQwpProtocolViolationSenderError.html b/docs/functions/_questdb_browser-client.createQwpProtocolViolationSenderError.html index 26ec7089..abacfab0 100644 --- a/docs/functions/_questdb_browser-client.createQwpProtocolViolationSenderError.html +++ b/docs/functions/_questdb_browser-client.createQwpProtocolViolationSenderError.html @@ -1 +1 @@ -createQwpProtocolViolationSenderError | QuestDB JavaScript Client - v5.0.0

    Function createQwpProtocolViolationSenderError

    +createQwpProtocolViolationSenderError | QuestDB JavaScript Client - v5.0.0

    Function createQwpProtocolViolationSenderError

    diff --git a/docs/functions/_questdb_browser-client.createQwpSenderError.html b/docs/functions/_questdb_browser-client.createQwpSenderError.html index 004491a9..0e8eb4c4 100644 --- a/docs/functions/_questdb_browser-client.createQwpSenderError.html +++ b/docs/functions/_questdb_browser-client.createQwpSenderError.html @@ -1 +1 @@ -createQwpSenderError | QuestDB JavaScript Client - v5.0.0

    Function createQwpSenderError

    +createQwpSenderError | QuestDB JavaScript Client - v5.0.0

    Function createQwpSenderError

    diff --git a/docs/functions/_questdb_browser-client.date.html b/docs/functions/_questdb_browser-client.date.html index c63f6ca2..b0b59524 100644 --- a/docs/functions/_questdb_browser-client.date.html +++ b/docs/functions/_questdb_browser-client.date.html @@ -1,4 +1,4 @@ date | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number | bigint>

    diff --git a/docs/functions/_questdb_browser-client.decimal128.html b/docs/functions/_questdb_browser-client.decimal128.html index f173d278..f0516df4 100644 --- a/docs/functions/_questdb_browser-client.decimal128.html +++ b/docs/functions/_questdb_browser-client.decimal128.html @@ -1,2 +1,2 @@ decimal128 | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    • scale: number

    Returns QwpWriterColumn<QwpDecimalInput>

    diff --git a/docs/functions/_questdb_browser-client.decimal256.html b/docs/functions/_questdb_browser-client.decimal256.html index b3dc5476..1d8cfa51 100644 --- a/docs/functions/_questdb_browser-client.decimal256.html +++ b/docs/functions/_questdb_browser-client.decimal256.html @@ -1,2 +1,2 @@ decimal256 | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    • scale: number

    Returns QwpWriterColumn<QwpDecimalInput>

    diff --git a/docs/functions/_questdb_browser-client.decimal64.html b/docs/functions/_questdb_browser-client.decimal64.html index 3274e264..fd14fb87 100644 --- a/docs/functions/_questdb_browser-client.decimal64.html +++ b/docs/functions/_questdb_browser-client.decimal64.html @@ -1,2 +1,2 @@ decimal64 | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    • scale: number

    Returns QwpWriterColumn<QwpDecimalInput>

    diff --git a/docs/functions/_questdb_browser-client.decodeQwpContentEncoding.html b/docs/functions/_questdb_browser-client.decodeQwpContentEncoding.html index e0db8fdf..9f30f0b8 100644 --- a/docs/functions/_questdb_browser-client.decodeQwpContentEncoding.html +++ b/docs/functions/_questdb_browser-client.decodeQwpContentEncoding.html @@ -1,4 +1,4 @@ decodeQwpContentEncoding | QuestDB JavaScript Client - v5.0.0

    Function decodeQwpContentEncoding

    +

    Parameters

    • value: undefined | string

    Returns QwpNegotiatedEgressCompression

    diff --git a/docs/functions/_questdb_browser-client.decodeQwpEgressMessage.html b/docs/functions/_questdb_browser-client.decodeQwpEgressMessage.html index c35b3573..29b2a8e1 100644 --- a/docs/functions/_questdb_browser-client.decodeQwpEgressMessage.html +++ b/docs/functions/_questdb_browser-client.decodeQwpEgressMessage.html @@ -1,2 +1,2 @@ decodeQwpEgressMessage | QuestDB JavaScript Client - v5.0.0

    Function decodeQwpEgressMessage

    +

    Parameters

    • bytes: Uint8Array

    Returns QwpEgressMessage

    diff --git a/docs/functions/_questdb_browser-client.decodeQwpFrame.html b/docs/functions/_questdb_browser-client.decodeQwpFrame.html index a7ec0872..6476b232 100644 --- a/docs/functions/_questdb_browser-client.decodeQwpFrame.html +++ b/docs/functions/_questdb_browser-client.decodeQwpFrame.html @@ -1 +1 @@ -decodeQwpFrame | QuestDB JavaScript Client - v5.0.0
    +decodeQwpFrame | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_browser-client.decodeQwpIngressResponse.html b/docs/functions/_questdb_browser-client.decodeQwpIngressResponse.html index 19777bed..161480e1 100644 --- a/docs/functions/_questdb_browser-client.decodeQwpIngressResponse.html +++ b/docs/functions/_questdb_browser-client.decodeQwpIngressResponse.html @@ -1,2 +1,2 @@ decodeQwpIngressResponse | QuestDB JavaScript Client - v5.0.0

    Function decodeQwpIngressResponse

    +

    Parameters

    • payload: Uint8Array

    Returns QwpIngressResponse

    diff --git a/docs/functions/_questdb_browser-client.decodeQwpIngressServerInfo.html b/docs/functions/_questdb_browser-client.decodeQwpIngressServerInfo.html index 6fab3b35..d38e648a 100644 --- a/docs/functions/_questdb_browser-client.decodeQwpIngressServerInfo.html +++ b/docs/functions/_questdb_browser-client.decodeQwpIngressServerInfo.html @@ -1,2 +1,2 @@ decodeQwpIngressServerInfo | QuestDB JavaScript Client - v5.0.0

    Function decodeQwpIngressServerInfo

    +

    Parameters

    • payload: Uint8Array

    Returns undefined | QwpIngressServerInfo

    diff --git a/docs/functions/_questdb_browser-client.decodeQwpIngressSymbolDictionaryDelta.html b/docs/functions/_questdb_browser-client.decodeQwpIngressSymbolDictionaryDelta.html index da5bf15c..8b66d39a 100644 --- a/docs/functions/_questdb_browser-client.decodeQwpIngressSymbolDictionaryDelta.html +++ b/docs/functions/_questdb_browser-client.decodeQwpIngressSymbolDictionaryDelta.html @@ -1,2 +1,2 @@ decodeQwpIngressSymbolDictionaryDelta | QuestDB JavaScript Client - v5.0.0

    Function decodeQwpIngressSymbolDictionaryDelta

    +

    Parameters

    • bytes: Uint8Array

    Returns undefined | QwpIngressSymbolDictionaryDelta

    diff --git a/docs/functions/_questdb_browser-client.decodeQwpVarint.html b/docs/functions/_questdb_browser-client.decodeQwpVarint.html index bbc9b913..25585b23 100644 --- a/docs/functions/_questdb_browser-client.decodeQwpVarint.html +++ b/docs/functions/_questdb_browser-client.decodeQwpVarint.html @@ -1 +1 @@ -decodeQwpVarint | QuestDB JavaScript Client - v5.0.0
    • Parameters

      • bytes: Uint8Array
      • offset: number = 0

      Returns { offset: number; value: bigint }

    +decodeQwpVarint | QuestDB JavaScript Client - v5.0.0
    • Parameters

      • bytes: Uint8Array
      • offset: number = 0

      Returns { offset: number; value: bigint }

    diff --git a/docs/functions/_questdb_browser-client.decodeUtf8.html b/docs/functions/_questdb_browser-client.decodeUtf8.html index a22877ef..8540e9d5 100644 --- a/docs/functions/_questdb_browser-client.decodeUtf8.html +++ b/docs/functions/_questdb_browser-client.decodeUtf8.html @@ -1 +1 @@ -decodeUtf8 | QuestDB JavaScript Client - v5.0.0
    +decodeUtf8 | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_browser-client.decompressQwpZstdFrame.html b/docs/functions/_questdb_browser-client.decompressQwpZstdFrame.html index b19d48e5..477dcbea 100644 --- a/docs/functions/_questdb_browser-client.decompressQwpZstdFrame.html +++ b/docs/functions/_questdb_browser-client.decompressQwpZstdFrame.html @@ -1,2 +1,2 @@ decompressQwpZstdFrame | QuestDB JavaScript Client - v5.0.0

    Function decompressQwpZstdFrame

    +

    Parameters

    • frame: Uint8Array

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_browser-client.defaultQwpSenderErrorHandler.html b/docs/functions/_questdb_browser-client.defaultQwpSenderErrorHandler.html index dc3bafe0..bac843c2 100644 --- a/docs/functions/_questdb_browser-client.defaultQwpSenderErrorHandler.html +++ b/docs/functions/_questdb_browser-client.defaultQwpSenderErrorHandler.html @@ -1,3 +1,3 @@ defaultQwpSenderErrorHandler | QuestDB JavaScript Client - v5.0.0

    Function defaultQwpSenderErrorHandler

    +

    Parameters

    Returns void

    diff --git a/docs/functions/_questdb_browser-client.designatedTimestamp.html b/docs/functions/_questdb_browser-client.designatedTimestamp.html index 5beb0fd9..893c7113 100644 --- a/docs/functions/_questdb_browser-client.designatedTimestamp.html +++ b/docs/functions/_questdb_browser-client.designatedTimestamp.html @@ -1,2 +1,2 @@ designatedTimestamp | QuestDB JavaScript Client - v5.0.0

    Function designatedTimestamp

    +

    Type Parameters

    Parameters

    Returns QwpWriterColumn<TimestampInput<Unit>, true>

    diff --git a/docs/functions/_questdb_browser-client.double.html b/docs/functions/_questdb_browser-client.double.html index 24acdad8..9d2209ca 100644 --- a/docs/functions/_questdb_browser-client.double.html +++ b/docs/functions/_questdb_browser-client.double.html @@ -1,2 +1,2 @@ double | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number>

    diff --git a/docs/functions/_questdb_browser-client.doubleArray.html b/docs/functions/_questdb_browser-client.doubleArray.html index bd72266d..9ca7a6e7 100644 --- a/docs/functions/_questdb_browser-client.doubleArray.html +++ b/docs/functions/_questdb_browser-client.doubleArray.html @@ -1,2 +1,2 @@ doubleArray | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<QwpDoubleArrayInput>

    diff --git a/docs/functions/_questdb_browser-client.encodeQwpAcceptEncoding.html b/docs/functions/_questdb_browser-client.encodeQwpAcceptEncoding.html index e836f7be..56c8ae13 100644 --- a/docs/functions/_questdb_browser-client.encodeQwpAcceptEncoding.html +++ b/docs/functions/_questdb_browser-client.encodeQwpAcceptEncoding.html @@ -1,2 +1,2 @@ encodeQwpAcceptEncoding | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpAcceptEncoding

    +

    Parameters

    Returns undefined | string

    diff --git a/docs/functions/_questdb_browser-client.encodeQwpBinds.html b/docs/functions/_questdb_browser-client.encodeQwpBinds.html index e694af4a..811dd437 100644 --- a/docs/functions/_questdb_browser-client.encodeQwpBinds.html +++ b/docs/functions/_questdb_browser-client.encodeQwpBinds.html @@ -1,2 +1,2 @@ encodeQwpBinds | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    Returns QwpEncodedBinds

    diff --git a/docs/functions/_questdb_browser-client.encodeQwpCancel.html b/docs/functions/_questdb_browser-client.encodeQwpCancel.html index b2540d49..63436fc3 100644 --- a/docs/functions/_questdb_browser-client.encodeQwpCancel.html +++ b/docs/functions/_questdb_browser-client.encodeQwpCancel.html @@ -1,2 +1,2 @@ encodeQwpCancel | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    • request: number | bigint

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_browser-client.encodeQwpCredit.html b/docs/functions/_questdb_browser-client.encodeQwpCredit.html index a2f97a2f..2e289c6a 100644 --- a/docs/functions/_questdb_browser-client.encodeQwpCredit.html +++ b/docs/functions/_questdb_browser-client.encodeQwpCredit.html @@ -1,2 +1,2 @@ encodeQwpCredit | QuestDB JavaScript Client - v5.0.0
    • Encodes the unframed client-to-server CREDIT payload.

      -

      Parameters

      • request: number | bigint
      • additionalBytes: number | bigint

      Returns Uint8Array

    +

    Parameters

    • request: number | bigint
    • additionalBytes: number | bigint

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_browser-client.encodeQwpDurableAckPollFrame.html b/docs/functions/_questdb_browser-client.encodeQwpDurableAckPollFrame.html index 7992328c..0ff0c800 100644 --- a/docs/functions/_questdb_browser-client.encodeQwpDurableAckPollFrame.html +++ b/docs/functions/_questdb_browser-client.encodeQwpDurableAckPollFrame.html @@ -1,2 +1,2 @@ encodeQwpDurableAckPollFrame | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpDurableAckPollFrame

    +

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_browser-client.encodeQwpFrame.html b/docs/functions/_questdb_browser-client.encodeQwpFrame.html index adcb9ac2..fa535dbf 100644 --- a/docs/functions/_questdb_browser-client.encodeQwpFrame.html +++ b/docs/functions/_questdb_browser-client.encodeQwpFrame.html @@ -1 +1 @@ -encodeQwpFrame | QuestDB JavaScript Client - v5.0.0
    • Parameters

      • payload: Uint8Array
      • flags: number = 0
      • tableCount: number = 0

      Returns Uint8Array

    +encodeQwpFrame | QuestDB JavaScript Client - v5.0.0
    • Parameters

      • payload: Uint8Array
      • flags: number = 0
      • tableCount: number = 0

      Returns Uint8Array

    diff --git a/docs/functions/_questdb_browser-client.encodeQwpGorilla.html b/docs/functions/_questdb_browser-client.encodeQwpGorilla.html index 7bfeb19a..de98f6fa 100644 --- a/docs/functions/_questdb_browser-client.encodeQwpGorilla.html +++ b/docs/functions/_questdb_browser-client.encodeQwpGorilla.html @@ -1,2 +1,2 @@ encodeQwpGorilla | QuestDB JavaScript Client - v5.0.0
    • Encodes signed int64 timestamps with the QWP LSB-first Gorilla variant.

      -

      Parameters

      • timestamps: readonly bigint[]

      Returns Uint8Array

    +

    Parameters

    • timestamps: readonly bigint[]

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_browser-client.encodeQwpIngressCommitFrame.html b/docs/functions/_questdb_browser-client.encodeQwpIngressCommitFrame.html index cab13609..d25e2c66 100644 --- a/docs/functions/_questdb_browser-client.encodeQwpIngressCommitFrame.html +++ b/docs/functions/_questdb_browser-client.encodeQwpIngressCommitFrame.html @@ -1 +1 @@ -encodeQwpIngressCommitFrame | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpIngressCommitFrame

    +encodeQwpIngressCommitFrame | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpIngressCommitFrame

    diff --git a/docs/functions/_questdb_browser-client.encodeQwpIngressFrame.html b/docs/functions/_questdb_browser-client.encodeQwpIngressFrame.html index 0f89e9f7..15782357 100644 --- a/docs/functions/_questdb_browser-client.encodeQwpIngressFrame.html +++ b/docs/functions/_questdb_browser-client.encodeQwpIngressFrame.html @@ -1,2 +1,2 @@ encodeQwpIngressFrame | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpIngressFrame

    +

    Parameters

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_browser-client.encodeQwpIngressSymbolDictionaryFrame.html b/docs/functions/_questdb_browser-client.encodeQwpIngressSymbolDictionaryFrame.html index 881c10dc..b3f28f0f 100644 --- a/docs/functions/_questdb_browser-client.encodeQwpIngressSymbolDictionaryFrame.html +++ b/docs/functions/_questdb_browser-client.encodeQwpIngressSymbolDictionaryFrame.html @@ -1,2 +1,2 @@ encodeQwpIngressSymbolDictionaryFrame | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpIngressSymbolDictionaryFrame

    • Encodes a table-less committed dictionary catch-up frame.

      -

      Parameters

      • startId: number
      • entries: readonly string[]

      Returns Uint8Array

    +

    Parameters

    • startId: number
    • entries: readonly string[]

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_browser-client.encodeQwpQueryRequest.html b/docs/functions/_questdb_browser-client.encodeQwpQueryRequest.html index 20e421f5..e78472bf 100644 --- a/docs/functions/_questdb_browser-client.encodeQwpQueryRequest.html +++ b/docs/functions/_questdb_browser-client.encodeQwpQueryRequest.html @@ -1,2 +1,2 @@ encodeQwpQueryRequest | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpQueryRequest

    +

    Parameters

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_browser-client.encodeQwpVarint.html b/docs/functions/_questdb_browser-client.encodeQwpVarint.html index 372589cf..f6267ee5 100644 --- a/docs/functions/_questdb_browser-client.encodeQwpVarint.html +++ b/docs/functions/_questdb_browser-client.encodeQwpVarint.html @@ -1 +1 @@ -encodeQwpVarint | QuestDB JavaScript Client - v5.0.0
    +encodeQwpVarint | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_browser-client.encodeUtf8.html b/docs/functions/_questdb_browser-client.encodeUtf8.html index 9b3d0054..1958475c 100644 --- a/docs/functions/_questdb_browser-client.encodeUtf8.html +++ b/docs/functions/_questdb_browser-client.encodeUtf8.html @@ -1 +1 @@ -encodeUtf8 | QuestDB JavaScript Client - v5.0.0
    +encodeUtf8 | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_browser-client.flattenQwpArray.html b/docs/functions/_questdb_browser-client.flattenQwpArray.html index 5668bc19..7fbe0692 100644 --- a/docs/functions/_questdb_browser-client.flattenQwpArray.html +++ b/docs/functions/_questdb_browser-client.flattenQwpArray.html @@ -1 +1 @@ -flattenQwpArray | QuestDB JavaScript Client - v5.0.0
    +flattenQwpArray | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_browser-client.float32.html b/docs/functions/_questdb_browser-client.float32.html index 07697ae4..0492fb48 100644 --- a/docs/functions/_questdb_browser-client.float32.html +++ b/docs/functions/_questdb_browser-client.float32.html @@ -1,2 +1,2 @@ float32 | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number>

    diff --git a/docs/functions/_questdb_browser-client.float64.html b/docs/functions/_questdb_browser-client.float64.html index d2133a90..72521485 100644 --- a/docs/functions/_questdb_browser-client.float64.html +++ b/docs/functions/_questdb_browser-client.float64.html @@ -1,2 +1,2 @@ float64 | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number>

    diff --git a/docs/functions/_questdb_browser-client.geohash.html b/docs/functions/_questdb_browser-client.geohash.html index de509cc2..535b1e4f 100644 --- a/docs/functions/_questdb_browser-client.geohash.html +++ b/docs/functions/_questdb_browser-client.geohash.html @@ -1,4 +1,4 @@ geohash | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<QwpGeohashInput>

    diff --git a/docs/functions/_questdb_browser-client.int32.html b/docs/functions/_questdb_browser-client.int32.html index 6079ea74..e2733baa 100644 --- a/docs/functions/_questdb_browser-client.int32.html +++ b/docs/functions/_questdb_browser-client.int32.html @@ -1,4 +1,4 @@ int32 | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number>

    diff --git a/docs/functions/_questdb_browser-client.int64.html b/docs/functions/_questdb_browser-client.int64.html index 6dfa7eb7..db338dea 100644 --- a/docs/functions/_questdb_browser-client.int64.html +++ b/docs/functions/_questdb_browser-client.int64.html @@ -1,4 +1,4 @@ int64 | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<bigint>

    diff --git a/docs/functions/_questdb_browser-client.ipv4.html b/docs/functions/_questdb_browser-client.ipv4.html index 7fe002cb..8af88033 100644 --- a/docs/functions/_questdb_browser-client.ipv4.html +++ b/docs/functions/_questdb_browser-client.ipv4.html @@ -1,2 +1,2 @@ ipv4 | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<QwpIpv4Input>

    diff --git a/docs/functions/_questdb_browser-client.isQwpDurableAckWebSocketProtocol.html b/docs/functions/_questdb_browser-client.isQwpDurableAckWebSocketProtocol.html index dcfe20e1..3c39baa1 100644 --- a/docs/functions/_questdb_browser-client.isQwpDurableAckWebSocketProtocol.html +++ b/docs/functions/_questdb_browser-client.isQwpDurableAckWebSocketProtocol.html @@ -1,2 +1,2 @@ isQwpDurableAckWebSocketProtocol | QuestDB JavaScript Client - v5.0.0

    Function isQwpDurableAckWebSocketProtocol

    +

    Parameters

    • protocol: undefined | string

    Returns boolean

    diff --git a/docs/functions/_questdb_browser-client.long.html b/docs/functions/_questdb_browser-client.long.html index 5e28be2e..13244901 100644 --- a/docs/functions/_questdb_browser-client.long.html +++ b/docs/functions/_questdb_browser-client.long.html @@ -1,2 +1,2 @@ long | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<bigint>

    diff --git a/docs/functions/_questdb_browser-client.long256.html b/docs/functions/_questdb_browser-client.long256.html index b4d84e81..23a934a3 100644 --- a/docs/functions/_questdb_browser-client.long256.html +++ b/docs/functions/_questdb_browser-client.long256.html @@ -1,2 +1,2 @@ long256 | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<QwpLong256Input>

    diff --git a/docs/functions/_questdb_browser-client.longArray.html b/docs/functions/_questdb_browser-client.longArray.html index 17f73b94..650aae5c 100644 --- a/docs/functions/_questdb_browser-client.longArray.html +++ b/docs/functions/_questdb_browser-client.longArray.html @@ -1,4 +1,4 @@ longArray | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<QwpLongArrayInput>

    diff --git a/docs/functions/_questdb_browser-client.qwpDefaultSenderErrorPolicy.html b/docs/functions/_questdb_browser-client.qwpDefaultSenderErrorPolicy.html index b0ec3196..e322aa2b 100644 --- a/docs/functions/_questdb_browser-client.qwpDefaultSenderErrorPolicy.html +++ b/docs/functions/_questdb_browser-client.qwpDefaultSenderErrorPolicy.html @@ -1 +1 @@ -qwpDefaultSenderErrorPolicy | QuestDB JavaScript Client - v5.0.0

    Function qwpDefaultSenderErrorPolicy

    +qwpDefaultSenderErrorPolicy | QuestDB JavaScript Client - v5.0.0

    Function qwpDefaultSenderErrorPolicy

    diff --git a/docs/functions/_questdb_browser-client.qwpGorillaSize.html b/docs/functions/_questdb_browser-client.qwpGorillaSize.html index 07779292..2b7929ee 100644 --- a/docs/functions/_questdb_browser-client.qwpGorillaSize.html +++ b/docs/functions/_questdb_browser-client.qwpGorillaSize.html @@ -1,3 +1,3 @@ qwpGorillaSize | QuestDB JavaScript Client - v5.0.0
    • Encoded byte count, or -1 when a delta-of-delta leaves int32 range. Throws when a timestamp is outside the signed int64 wire range.

      -

      Parameters

      • timestamps: readonly bigint[]

      Returns number

    +

    Parameters

    • timestamps: readonly bigint[]

    Returns number

    diff --git a/docs/functions/_questdb_browser-client.qwpSenderErrorCategory.html b/docs/functions/_questdb_browser-client.qwpSenderErrorCategory.html index 72844c90..30e061a1 100644 --- a/docs/functions/_questdb_browser-client.qwpSenderErrorCategory.html +++ b/docs/functions/_questdb_browser-client.qwpSenderErrorCategory.html @@ -1 +1 @@ -qwpSenderErrorCategory | QuestDB JavaScript Client - v5.0.0

    Function qwpSenderErrorCategory

    +qwpSenderErrorCategory | QuestDB JavaScript Client - v5.0.0

    Function qwpSenderErrorCategory

    diff --git a/docs/functions/_questdb_browser-client.qwpVarintSize.html b/docs/functions/_questdb_browser-client.qwpVarintSize.html index a9933cf4..5cea6093 100644 --- a/docs/functions/_questdb_browser-client.qwpVarintSize.html +++ b/docs/functions/_questdb_browser-client.qwpVarintSize.html @@ -1,2 +1,2 @@ qwpVarintSize | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    • value: number | bigint

    Returns number

    diff --git a/docs/functions/_questdb_browser-client.readQwpVarint.html b/docs/functions/_questdb_browser-client.readQwpVarint.html index 177198f1..7448aa28 100644 --- a/docs/functions/_questdb_browser-client.readQwpVarint.html +++ b/docs/functions/_questdb_browser-client.readQwpVarint.html @@ -1,2 +1,2 @@ readQwpVarint | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    Returns bigint

    diff --git a/docs/functions/_questdb_browser-client.readQwpVarintNumber.html b/docs/functions/_questdb_browser-client.readQwpVarintNumber.html index a05c7257..ec05bf68 100644 --- a/docs/functions/_questdb_browser-client.readQwpVarintNumber.html +++ b/docs/functions/_questdb_browser-client.readQwpVarintNumber.html @@ -1 +1 @@ -readQwpVarintNumber | QuestDB JavaScript Client - v5.0.0

    Function readQwpVarintNumber

    +readQwpVarintNumber | QuestDB JavaScript Client - v5.0.0

    Function readQwpVarintNumber

    diff --git a/docs/functions/_questdb_browser-client.short.html b/docs/functions/_questdb_browser-client.short.html index 16199a73..c1245a15 100644 --- a/docs/functions/_questdb_browser-client.short.html +++ b/docs/functions/_questdb_browser-client.short.html @@ -1,2 +1,2 @@ short | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number>

    diff --git a/docs/functions/_questdb_browser-client.symbol.html b/docs/functions/_questdb_browser-client.symbol.html index fcfbc4df..02c2dea3 100644 --- a/docs/functions/_questdb_browser-client.symbol.html +++ b/docs/functions/_questdb_browser-client.symbol.html @@ -1,2 +1,2 @@ symbol | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<string>

    diff --git a/docs/functions/_questdb_browser-client.timestamp.html b/docs/functions/_questdb_browser-client.timestamp.html index a96d9adb..61b95103 100644 --- a/docs/functions/_questdb_browser-client.timestamp.html +++ b/docs/functions/_questdb_browser-client.timestamp.html @@ -1,2 +1,2 @@ timestamp | QuestDB JavaScript Client - v5.0.0
    +

    Type Parameters

    Parameters

    Returns QwpWriterColumn<TimestampInput<Unit>>

    diff --git a/docs/functions/_questdb_browser-client.utf8Length.html b/docs/functions/_questdb_browser-client.utf8Length.html index fa236f7a..c1ef1cd4 100644 --- a/docs/functions/_questdb_browser-client.utf8Length.html +++ b/docs/functions/_questdb_browser-client.utf8Length.html @@ -1 +1 @@ -utf8Length | QuestDB JavaScript Client - v5.0.0
    +utf8Length | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_browser-client.uuid.html b/docs/functions/_questdb_browser-client.uuid.html index 5a1ae8af..926d5c41 100644 --- a/docs/functions/_questdb_browser-client.uuid.html +++ b/docs/functions/_questdb_browser-client.uuid.html @@ -1,2 +1,2 @@ uuid | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<QwpUuidInput>

    diff --git a/docs/functions/_questdb_browser-client.varchar.html b/docs/functions/_questdb_browser-client.varchar.html index 842b7bd8..97f20732 100644 --- a/docs/functions/_questdb_browser-client.varchar.html +++ b/docs/functions/_questdb_browser-client.varchar.html @@ -1,2 +1,2 @@ varchar | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<string>

    diff --git a/docs/functions/_questdb_browser-client.writeQwpFrameHeader.html b/docs/functions/_questdb_browser-client.writeQwpFrameHeader.html index 6625bcbf..fbfb26d1 100644 --- a/docs/functions/_questdb_browser-client.writeQwpFrameHeader.html +++ b/docs/functions/_questdb_browser-client.writeQwpFrameHeader.html @@ -1 +1 @@ -writeQwpFrameHeader | QuestDB JavaScript Client - v5.0.0

    Function writeQwpFrameHeader

    +writeQwpFrameHeader | QuestDB JavaScript Client - v5.0.0

    Function writeQwpFrameHeader

    diff --git a/docs/functions/_questdb_browser-client.writeQwpVarint.html b/docs/functions/_questdb_browser-client.writeQwpVarint.html index e2c21265..a577713e 100644 --- a/docs/functions/_questdb_browser-client.writeQwpVarint.html +++ b/docs/functions/_questdb_browser-client.writeQwpVarint.html @@ -1,2 +1,2 @@ writeQwpVarint | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    Returns void

    diff --git a/docs/functions/_questdb_nodejs-client.addQwpDurableAckWebSocketProtocol.html b/docs/functions/_questdb_nodejs-client.addQwpDurableAckWebSocketProtocol.html index 5d186809..22d8d9f0 100644 --- a/docs/functions/_questdb_nodejs-client.addQwpDurableAckWebSocketProtocol.html +++ b/docs/functions/_questdb_nodejs-client.addQwpDurableAckWebSocketProtocol.html @@ -1,2 +1,2 @@ addQwpDurableAckWebSocketProtocol | QuestDB JavaScript Client - v5.0.0

    Function addQwpDurableAckWebSocketProtocol

    • Adds the durable-ACK capability token without mutating user options.

      -

      Parameters

      • protocols: string | readonly string[]

      Returns string | string[]

    +

    Parameters

    • protocols: string | readonly string[]

    Returns string | string[]

    diff --git a/docs/functions/_questdb_nodejs-client.bigintToTwosComplementBytes.html b/docs/functions/_questdb_nodejs-client.bigintToTwosComplementBytes.html index 652a5691..cb2305c3 100644 --- a/docs/functions/_questdb_nodejs-client.bigintToTwosComplementBytes.html +++ b/docs/functions/_questdb_nodejs-client.bigintToTwosComplementBytes.html @@ -2,4 +2,4 @@ Produces the minimal-width representation that preserves the sign.

    Parameters

    • value: bigint

      The value to serialise

    Returns number[]

    Byte array in big-endian order

    -
    +
    diff --git a/docs/functions/_questdb_nodejs-client.binary.html b/docs/functions/_questdb_nodejs-client.binary.html index ceb62e41..8164c1a2 100644 --- a/docs/functions/_questdb_nodejs-client.binary.html +++ b/docs/functions/_questdb_nodejs-client.binary.html @@ -1,2 +1,2 @@ binary | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<Uint8Array<ArrayBufferLike>>

    diff --git a/docs/functions/_questdb_nodejs-client.bool.html b/docs/functions/_questdb_nodejs-client.bool.html index fdf09f5d..93147917 100644 --- a/docs/functions/_questdb_nodejs-client.bool.html +++ b/docs/functions/_questdb_nodejs-client.bool.html @@ -1,2 +1,2 @@ bool | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<boolean>

    diff --git a/docs/functions/_questdb_nodejs-client.byte.html b/docs/functions/_questdb_nodejs-client.byte.html index b7571c21..200b2462 100644 --- a/docs/functions/_questdb_nodejs-client.byte.html +++ b/docs/functions/_questdb_nodejs-client.byte.html @@ -1,2 +1,2 @@ byte | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number>

    diff --git a/docs/functions/_questdb_nodejs-client.char.html b/docs/functions/_questdb_nodejs-client.char.html index b4c7affe..2ec070f0 100644 --- a/docs/functions/_questdb_nodejs-client.char.html +++ b/docs/functions/_questdb_nodejs-client.char.html @@ -1,2 +1,2 @@ char | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<string>

    diff --git a/docs/functions/_questdb_nodejs-client.concatBytes.html b/docs/functions/_questdb_nodejs-client.concatBytes.html index 2abbc764..4b33cbdf 100644 --- a/docs/functions/_questdb_nodejs-client.concatBytes.html +++ b/docs/functions/_questdb_nodejs-client.concatBytes.html @@ -1 +1 @@ -concatBytes | QuestDB JavaScript Client - v5.0.0
    +concatBytes | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_nodejs-client.connectQwpNodeClient.html b/docs/functions/_questdb_nodejs-client.connectQwpNodeClient.html index a9c07d83..30ae092c 100644 --- a/docs/functions/_questdb_nodejs-client.connectQwpNodeClient.html +++ b/docs/functions/_questdb_nodejs-client.connectQwpNodeClient.html @@ -1,3 +1,3 @@ connectQwpNodeClient | QuestDB JavaScript Client - v5.0.0

    Function connectQwpNodeClient

    +

    Parameters

    Returns Promise<QwpClient>

  • Creates and prewarms a combined Node QWP ingress/egress client.

    +

    Parameters

    Returns Promise<QwpClient>

  • diff --git a/docs/functions/_questdb_nodejs-client.connectQwpNodeEgress.html b/docs/functions/_questdb_nodejs-client.connectQwpNodeEgress.html index 071cd53a..7c45d56b 100644 --- a/docs/functions/_questdb_nodejs-client.connectQwpNodeEgress.html +++ b/docs/functions/_questdb_nodejs-client.connectQwpNodeEgress.html @@ -1,3 +1,3 @@ connectQwpNodeEgress | QuestDB JavaScript Client - v5.0.0

    Function connectQwpNodeEgress

    +

    Returns Promise<QwpEgressSession>

    diff --git a/docs/functions/_questdb_nodejs-client.connectQwpNodeSender.html b/docs/functions/_questdb_nodejs-client.connectQwpNodeSender.html index ba933b23..e67d5228 100644 --- a/docs/functions/_questdb_nodejs-client.connectQwpNodeSender.html +++ b/docs/functions/_questdb_nodejs-client.connectQwpNodeSender.html @@ -1,2 +1,2 @@ connectQwpNodeSender | QuestDB JavaScript Client - v5.0.0

    Function connectQwpNodeSender

    +

    Parameters

    Returns Promise<QwpSender>

    diff --git a/docs/functions/_questdb_nodejs-client.connectQwpNodeUdpSender.html b/docs/functions/_questdb_nodejs-client.connectQwpNodeUdpSender.html index 3bed3d0d..aafc00a8 100644 --- a/docs/functions/_questdb_nodejs-client.connectQwpNodeUdpSender.html +++ b/docs/functions/_questdb_nodejs-client.connectQwpNodeUdpSender.html @@ -1,2 +1,2 @@ connectQwpNodeUdpSender | QuestDB JavaScript Client - v5.0.0

    Function connectQwpNodeUdpSender

    +

    Parameters

    Returns Promise<QwpSender>

    diff --git a/docs/functions/_questdb_nodejs-client.createBuffer.html b/docs/functions/_questdb_nodejs-client.createBuffer.html index 150be147..cc9afba3 100644 --- a/docs/functions/_questdb_nodejs-client.createBuffer.html +++ b/docs/functions/_questdb_nodejs-client.createBuffer.html @@ -3,4 +3,4 @@ See SenderOptions documentation for detailed description of configuration options.

    Returns SenderBuffer

    A SenderBuffer instance appropriate for the specified protocol version

    Error if protocol version is not specified or is unsupported

    -
    +
    diff --git a/docs/functions/_questdb_nodejs-client.createQwpDataLossSenderError.html b/docs/functions/_questdb_nodejs-client.createQwpDataLossSenderError.html index 8460de1b..945e84d1 100644 --- a/docs/functions/_questdb_nodejs-client.createQwpDataLossSenderError.html +++ b/docs/functions/_questdb_nodejs-client.createQwpDataLossSenderError.html @@ -1,2 +1,2 @@ createQwpDataLossSenderError | QuestDB JavaScript Client - v5.0.0

    Function createQwpDataLossSenderError

    +

    Returns QwpSenderError

    diff --git a/docs/functions/_questdb_nodejs-client.createQwpNodeClient.html b/docs/functions/_questdb_nodejs-client.createQwpNodeClient.html index 3a267738..b5fc27e6 100644 --- a/docs/functions/_questdb_nodejs-client.createQwpNodeClient.html +++ b/docs/functions/_questdb_nodejs-client.createQwpNodeClient.html @@ -1,3 +1,3 @@ createQwpNodeClient | QuestDB JavaScript Client - v5.0.0

    Function createQwpNodeClient

    +

    Parameters

    Returns QwpClient

  • Creates a lazy Node QWP client with bounded sender and query pools.

    +

    Parameters

    Returns QwpClient

  • diff --git a/docs/functions/_questdb_nodejs-client.createQwpNodeSender.html b/docs/functions/_questdb_nodejs-client.createQwpNodeSender.html index 31e47b68..0c3b049c 100644 --- a/docs/functions/_questdb_nodejs-client.createQwpNodeSender.html +++ b/docs/functions/_questdb_nodejs-client.createQwpNodeSender.html @@ -1,3 +1,3 @@ createQwpNodeSender | QuestDB JavaScript Client - v5.0.0

    Function createQwpNodeSender

    +

    Parameters

    Returns QwpSender

    diff --git a/docs/functions/_questdb_nodejs-client.createQwpNodeUdpSender.html b/docs/functions/_questdb_nodejs-client.createQwpNodeUdpSender.html index b215eaae..35d93ead 100644 --- a/docs/functions/_questdb_nodejs-client.createQwpNodeUdpSender.html +++ b/docs/functions/_questdb_nodejs-client.createQwpNodeUdpSender.html @@ -1,4 +1,4 @@ createQwpNodeUdpSender | QuestDB JavaScript Client - v5.0.0

    Function createQwpNodeUdpSender

    +

    Parameters

    Returns QwpSender

    diff --git a/docs/functions/_questdb_nodejs-client.createQwpProtocolViolationSenderError.html b/docs/functions/_questdb_nodejs-client.createQwpProtocolViolationSenderError.html index f05024b9..36d2f8ca 100644 --- a/docs/functions/_questdb_nodejs-client.createQwpProtocolViolationSenderError.html +++ b/docs/functions/_questdb_nodejs-client.createQwpProtocolViolationSenderError.html @@ -1 +1 @@ -createQwpProtocolViolationSenderError | QuestDB JavaScript Client - v5.0.0

    Function createQwpProtocolViolationSenderError

    +createQwpProtocolViolationSenderError | QuestDB JavaScript Client - v5.0.0

    Function createQwpProtocolViolationSenderError

    diff --git a/docs/functions/_questdb_nodejs-client.createQwpSenderError.html b/docs/functions/_questdb_nodejs-client.createQwpSenderError.html index 03953ecd..544c55a9 100644 --- a/docs/functions/_questdb_nodejs-client.createQwpSenderError.html +++ b/docs/functions/_questdb_nodejs-client.createQwpSenderError.html @@ -1 +1 @@ -createQwpSenderError | QuestDB JavaScript Client - v5.0.0

    Function createQwpSenderError

    +createQwpSenderError | QuestDB JavaScript Client - v5.0.0

    Function createQwpSenderError

    diff --git a/docs/functions/_questdb_nodejs-client.createTransport.html b/docs/functions/_questdb_nodejs-client.createTransport.html index 86ee3f0c..2ee54ddb 100644 --- a/docs/functions/_questdb_nodejs-client.createTransport.html +++ b/docs/functions/_questdb_nodejs-client.createTransport.html @@ -2,4 +2,4 @@

    Parameters

    • options: SenderOptions

      Sender configuration options including protocol and connection details

    Returns SenderTransport

    Transport instance appropriate for the specified protocol

    Error if protocol or host options are missing or invalid

    -
    +
    diff --git a/docs/functions/_questdb_nodejs-client.date.html b/docs/functions/_questdb_nodejs-client.date.html index 75765e23..b97e8a33 100644 --- a/docs/functions/_questdb_nodejs-client.date.html +++ b/docs/functions/_questdb_nodejs-client.date.html @@ -1,4 +1,4 @@ date | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number | bigint>

    diff --git a/docs/functions/_questdb_nodejs-client.decimal128.html b/docs/functions/_questdb_nodejs-client.decimal128.html index 013b32eb..0269d71d 100644 --- a/docs/functions/_questdb_nodejs-client.decimal128.html +++ b/docs/functions/_questdb_nodejs-client.decimal128.html @@ -1,2 +1,2 @@ decimal128 | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    • scale: number

    Returns QwpWriterColumn<QwpDecimalInput>

    diff --git a/docs/functions/_questdb_nodejs-client.decimal256.html b/docs/functions/_questdb_nodejs-client.decimal256.html index 1e147a6e..c57c770d 100644 --- a/docs/functions/_questdb_nodejs-client.decimal256.html +++ b/docs/functions/_questdb_nodejs-client.decimal256.html @@ -1,2 +1,2 @@ decimal256 | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    • scale: number

    Returns QwpWriterColumn<QwpDecimalInput>

    diff --git a/docs/functions/_questdb_nodejs-client.decimal64.html b/docs/functions/_questdb_nodejs-client.decimal64.html index 072d7808..8514cc20 100644 --- a/docs/functions/_questdb_nodejs-client.decimal64.html +++ b/docs/functions/_questdb_nodejs-client.decimal64.html @@ -1,2 +1,2 @@ decimal64 | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    • scale: number

    Returns QwpWriterColumn<QwpDecimalInput>

    diff --git a/docs/functions/_questdb_nodejs-client.decodeQwpContentEncoding.html b/docs/functions/_questdb_nodejs-client.decodeQwpContentEncoding.html index 972c728d..a1880369 100644 --- a/docs/functions/_questdb_nodejs-client.decodeQwpContentEncoding.html +++ b/docs/functions/_questdb_nodejs-client.decodeQwpContentEncoding.html @@ -1,4 +1,4 @@ decodeQwpContentEncoding | QuestDB JavaScript Client - v5.0.0

    Function decodeQwpContentEncoding

    +

    Parameters

    • value: string

    Returns QwpNegotiatedEgressCompression

    diff --git a/docs/functions/_questdb_nodejs-client.decodeQwpEgressMessage.html b/docs/functions/_questdb_nodejs-client.decodeQwpEgressMessage.html index 76c910f1..c2353da8 100644 --- a/docs/functions/_questdb_nodejs-client.decodeQwpEgressMessage.html +++ b/docs/functions/_questdb_nodejs-client.decodeQwpEgressMessage.html @@ -1,2 +1,2 @@ decodeQwpEgressMessage | QuestDB JavaScript Client - v5.0.0

    Function decodeQwpEgressMessage

    +

    Parameters

    • bytes: Uint8Array

    Returns QwpEgressMessage

    diff --git a/docs/functions/_questdb_nodejs-client.decodeQwpFrame.html b/docs/functions/_questdb_nodejs-client.decodeQwpFrame.html index d8b22a8d..4bdb5ef2 100644 --- a/docs/functions/_questdb_nodejs-client.decodeQwpFrame.html +++ b/docs/functions/_questdb_nodejs-client.decodeQwpFrame.html @@ -1 +1 @@ -decodeQwpFrame | QuestDB JavaScript Client - v5.0.0
    +decodeQwpFrame | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_nodejs-client.decodeQwpIngressResponse.html b/docs/functions/_questdb_nodejs-client.decodeQwpIngressResponse.html index dbf7cd5e..83b238fc 100644 --- a/docs/functions/_questdb_nodejs-client.decodeQwpIngressResponse.html +++ b/docs/functions/_questdb_nodejs-client.decodeQwpIngressResponse.html @@ -1,2 +1,2 @@ decodeQwpIngressResponse | QuestDB JavaScript Client - v5.0.0

    Function decodeQwpIngressResponse

    +

    Parameters

    • payload: Uint8Array

    Returns QwpIngressResponse

    diff --git a/docs/functions/_questdb_nodejs-client.decodeQwpIngressServerInfo.html b/docs/functions/_questdb_nodejs-client.decodeQwpIngressServerInfo.html index cdc2804e..fe9d926a 100644 --- a/docs/functions/_questdb_nodejs-client.decodeQwpIngressServerInfo.html +++ b/docs/functions/_questdb_nodejs-client.decodeQwpIngressServerInfo.html @@ -1,2 +1,2 @@ decodeQwpIngressServerInfo | QuestDB JavaScript Client - v5.0.0

    Function decodeQwpIngressServerInfo

    +

    Parameters

    • payload: Uint8Array

    Returns QwpIngressServerInfo

    diff --git a/docs/functions/_questdb_nodejs-client.decodeQwpIngressSymbolDictionaryDelta.html b/docs/functions/_questdb_nodejs-client.decodeQwpIngressSymbolDictionaryDelta.html index 5ef2a844..67bb1229 100644 --- a/docs/functions/_questdb_nodejs-client.decodeQwpIngressSymbolDictionaryDelta.html +++ b/docs/functions/_questdb_nodejs-client.decodeQwpIngressSymbolDictionaryDelta.html @@ -1,2 +1,2 @@ decodeQwpIngressSymbolDictionaryDelta | QuestDB JavaScript Client - v5.0.0

    Function decodeQwpIngressSymbolDictionaryDelta

    +

    Parameters

    • bytes: Uint8Array

    Returns QwpIngressSymbolDictionaryDelta

    diff --git a/docs/functions/_questdb_nodejs-client.decodeQwpVarint.html b/docs/functions/_questdb_nodejs-client.decodeQwpVarint.html index 078259e3..a9962647 100644 --- a/docs/functions/_questdb_nodejs-client.decodeQwpVarint.html +++ b/docs/functions/_questdb_nodejs-client.decodeQwpVarint.html @@ -1 +1 @@ -decodeQwpVarint | QuestDB JavaScript Client - v5.0.0
    • Parameters

      • bytes: Uint8Array
      • offset: number = 0

      Returns { offset: number; value: bigint }

    +decodeQwpVarint | QuestDB JavaScript Client - v5.0.0
    • Parameters

      • bytes: Uint8Array
      • offset: number = 0

      Returns { offset: number; value: bigint }

    diff --git a/docs/functions/_questdb_nodejs-client.decodeUtf8.html b/docs/functions/_questdb_nodejs-client.decodeUtf8.html index a549b452..224d2f5a 100644 --- a/docs/functions/_questdb_nodejs-client.decodeUtf8.html +++ b/docs/functions/_questdb_nodejs-client.decodeUtf8.html @@ -1 +1 @@ -decodeUtf8 | QuestDB JavaScript Client - v5.0.0
    +decodeUtf8 | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_nodejs-client.decompressQwpZstdFrame.html b/docs/functions/_questdb_nodejs-client.decompressQwpZstdFrame.html index 9be8b40f..f8290df1 100644 --- a/docs/functions/_questdb_nodejs-client.decompressQwpZstdFrame.html +++ b/docs/functions/_questdb_nodejs-client.decompressQwpZstdFrame.html @@ -1,2 +1,2 @@ decompressQwpZstdFrame | QuestDB JavaScript Client - v5.0.0

    Function decompressQwpZstdFrame

    +

    Parameters

    • frame: Uint8Array

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_nodejs-client.defaultQwpSenderErrorHandler.html b/docs/functions/_questdb_nodejs-client.defaultQwpSenderErrorHandler.html index 8ede698f..955bf0ba 100644 --- a/docs/functions/_questdb_nodejs-client.defaultQwpSenderErrorHandler.html +++ b/docs/functions/_questdb_nodejs-client.defaultQwpSenderErrorHandler.html @@ -1,3 +1,3 @@ defaultQwpSenderErrorHandler | QuestDB JavaScript Client - v5.0.0

    Function defaultQwpSenderErrorHandler

    +

    Parameters

    Returns void

    diff --git a/docs/functions/_questdb_nodejs-client.designatedTimestamp.html b/docs/functions/_questdb_nodejs-client.designatedTimestamp.html index 509556c1..8a134fa5 100644 --- a/docs/functions/_questdb_nodejs-client.designatedTimestamp.html +++ b/docs/functions/_questdb_nodejs-client.designatedTimestamp.html @@ -1,2 +1,2 @@ designatedTimestamp | QuestDB JavaScript Client - v5.0.0

    Function designatedTimestamp

    +

    Type Parameters

    Parameters

    Returns QwpWriterColumn<TimestampInput<Unit>, true>

    diff --git a/docs/functions/_questdb_nodejs-client.double.html b/docs/functions/_questdb_nodejs-client.double.html index 5b649bfc..03b842f0 100644 --- a/docs/functions/_questdb_nodejs-client.double.html +++ b/docs/functions/_questdb_nodejs-client.double.html @@ -1,2 +1,2 @@ double | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number>

    diff --git a/docs/functions/_questdb_nodejs-client.doubleArray.html b/docs/functions/_questdb_nodejs-client.doubleArray.html index 38c15845..8f0eb996 100644 --- a/docs/functions/_questdb_nodejs-client.doubleArray.html +++ b/docs/functions/_questdb_nodejs-client.doubleArray.html @@ -1,2 +1,2 @@ doubleArray | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<QwpDoubleArrayInput>

    diff --git a/docs/functions/_questdb_nodejs-client.encodeQwpAcceptEncoding.html b/docs/functions/_questdb_nodejs-client.encodeQwpAcceptEncoding.html index 5bfd6be1..522f371a 100644 --- a/docs/functions/_questdb_nodejs-client.encodeQwpAcceptEncoding.html +++ b/docs/functions/_questdb_nodejs-client.encodeQwpAcceptEncoding.html @@ -1,2 +1,2 @@ encodeQwpAcceptEncoding | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpAcceptEncoding

    +

    Parameters

    Returns string

    diff --git a/docs/functions/_questdb_nodejs-client.encodeQwpBinds.html b/docs/functions/_questdb_nodejs-client.encodeQwpBinds.html index dee00450..3e5458c0 100644 --- a/docs/functions/_questdb_nodejs-client.encodeQwpBinds.html +++ b/docs/functions/_questdb_nodejs-client.encodeQwpBinds.html @@ -1,2 +1,2 @@ encodeQwpBinds | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    Returns QwpEncodedBinds

    diff --git a/docs/functions/_questdb_nodejs-client.encodeQwpCancel.html b/docs/functions/_questdb_nodejs-client.encodeQwpCancel.html index 4546ac75..4e9e837e 100644 --- a/docs/functions/_questdb_nodejs-client.encodeQwpCancel.html +++ b/docs/functions/_questdb_nodejs-client.encodeQwpCancel.html @@ -1,2 +1,2 @@ encodeQwpCancel | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    • request: number | bigint

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_nodejs-client.encodeQwpCredit.html b/docs/functions/_questdb_nodejs-client.encodeQwpCredit.html index 8a1853ed..84be60f5 100644 --- a/docs/functions/_questdb_nodejs-client.encodeQwpCredit.html +++ b/docs/functions/_questdb_nodejs-client.encodeQwpCredit.html @@ -1,2 +1,2 @@ encodeQwpCredit | QuestDB JavaScript Client - v5.0.0
    • Encodes the unframed client-to-server CREDIT payload.

      -

      Parameters

      • request: number | bigint
      • additionalBytes: number | bigint

      Returns Uint8Array

    +

    Parameters

    • request: number | bigint
    • additionalBytes: number | bigint

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_nodejs-client.encodeQwpDurableAckPollFrame.html b/docs/functions/_questdb_nodejs-client.encodeQwpDurableAckPollFrame.html index b9092a9b..88233b7c 100644 --- a/docs/functions/_questdb_nodejs-client.encodeQwpDurableAckPollFrame.html +++ b/docs/functions/_questdb_nodejs-client.encodeQwpDurableAckPollFrame.html @@ -1,2 +1,2 @@ encodeQwpDurableAckPollFrame | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpDurableAckPollFrame

    +

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_nodejs-client.encodeQwpFrame.html b/docs/functions/_questdb_nodejs-client.encodeQwpFrame.html index 116cdb79..6d5bf425 100644 --- a/docs/functions/_questdb_nodejs-client.encodeQwpFrame.html +++ b/docs/functions/_questdb_nodejs-client.encodeQwpFrame.html @@ -1 +1 @@ -encodeQwpFrame | QuestDB JavaScript Client - v5.0.0
    • Parameters

      • payload: Uint8Array
      • flags: number = 0
      • tableCount: number = 0

      Returns Uint8Array

    +encodeQwpFrame | QuestDB JavaScript Client - v5.0.0
    • Parameters

      • payload: Uint8Array
      • flags: number = 0
      • tableCount: number = 0

      Returns Uint8Array

    diff --git a/docs/functions/_questdb_nodejs-client.encodeQwpGorilla.html b/docs/functions/_questdb_nodejs-client.encodeQwpGorilla.html index 40944cac..2e2c863c 100644 --- a/docs/functions/_questdb_nodejs-client.encodeQwpGorilla.html +++ b/docs/functions/_questdb_nodejs-client.encodeQwpGorilla.html @@ -1,2 +1,2 @@ encodeQwpGorilla | QuestDB JavaScript Client - v5.0.0
    • Encodes signed int64 timestamps with the QWP LSB-first Gorilla variant.

      -

      Parameters

      • timestamps: readonly bigint[]

      Returns Uint8Array

    +

    Parameters

    • timestamps: readonly bigint[]

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_nodejs-client.encodeQwpIngressCommitFrame.html b/docs/functions/_questdb_nodejs-client.encodeQwpIngressCommitFrame.html index cb6a756e..9bffa2ed 100644 --- a/docs/functions/_questdb_nodejs-client.encodeQwpIngressCommitFrame.html +++ b/docs/functions/_questdb_nodejs-client.encodeQwpIngressCommitFrame.html @@ -1 +1 @@ -encodeQwpIngressCommitFrame | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpIngressCommitFrame

    +encodeQwpIngressCommitFrame | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpIngressCommitFrame

    diff --git a/docs/functions/_questdb_nodejs-client.encodeQwpIngressFrame.html b/docs/functions/_questdb_nodejs-client.encodeQwpIngressFrame.html index e0e9f098..98f8b96c 100644 --- a/docs/functions/_questdb_nodejs-client.encodeQwpIngressFrame.html +++ b/docs/functions/_questdb_nodejs-client.encodeQwpIngressFrame.html @@ -1,2 +1,2 @@ encodeQwpIngressFrame | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpIngressFrame

    +

    Parameters

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_nodejs-client.encodeQwpIngressSymbolDictionaryFrame.html b/docs/functions/_questdb_nodejs-client.encodeQwpIngressSymbolDictionaryFrame.html index fe26225a..f12a1551 100644 --- a/docs/functions/_questdb_nodejs-client.encodeQwpIngressSymbolDictionaryFrame.html +++ b/docs/functions/_questdb_nodejs-client.encodeQwpIngressSymbolDictionaryFrame.html @@ -1,2 +1,2 @@ encodeQwpIngressSymbolDictionaryFrame | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpIngressSymbolDictionaryFrame

    • Encodes a table-less committed dictionary catch-up frame.

      -

      Parameters

      • startId: number
      • entries: readonly string[]

      Returns Uint8Array

    +

    Parameters

    • startId: number
    • entries: readonly string[]

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_nodejs-client.encodeQwpQueryRequest.html b/docs/functions/_questdb_nodejs-client.encodeQwpQueryRequest.html index 8f10c4ad..80bb6cc2 100644 --- a/docs/functions/_questdb_nodejs-client.encodeQwpQueryRequest.html +++ b/docs/functions/_questdb_nodejs-client.encodeQwpQueryRequest.html @@ -1,2 +1,2 @@ encodeQwpQueryRequest | QuestDB JavaScript Client - v5.0.0

    Function encodeQwpQueryRequest

    +

    Parameters

    Returns Uint8Array

    diff --git a/docs/functions/_questdb_nodejs-client.encodeQwpVarint.html b/docs/functions/_questdb_nodejs-client.encodeQwpVarint.html index c6ac4bfc..739b9611 100644 --- a/docs/functions/_questdb_nodejs-client.encodeQwpVarint.html +++ b/docs/functions/_questdb_nodejs-client.encodeQwpVarint.html @@ -1 +1 @@ -encodeQwpVarint | QuestDB JavaScript Client - v5.0.0
    +encodeQwpVarint | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_nodejs-client.encodeUtf8.html b/docs/functions/_questdb_nodejs-client.encodeUtf8.html index e7125917..3befcb6f 100644 --- a/docs/functions/_questdb_nodejs-client.encodeUtf8.html +++ b/docs/functions/_questdb_nodejs-client.encodeUtf8.html @@ -1 +1 @@ -encodeUtf8 | QuestDB JavaScript Client - v5.0.0
    +encodeUtf8 | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_nodejs-client.flattenQwpArray.html b/docs/functions/_questdb_nodejs-client.flattenQwpArray.html index 843a0e6c..ccb1c83f 100644 --- a/docs/functions/_questdb_nodejs-client.flattenQwpArray.html +++ b/docs/functions/_questdb_nodejs-client.flattenQwpArray.html @@ -1 +1 @@ -flattenQwpArray | QuestDB JavaScript Client - v5.0.0
    +flattenQwpArray | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_nodejs-client.float32.html b/docs/functions/_questdb_nodejs-client.float32.html index fb77f846..424c8b84 100644 --- a/docs/functions/_questdb_nodejs-client.float32.html +++ b/docs/functions/_questdb_nodejs-client.float32.html @@ -1,2 +1,2 @@ float32 | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number>

    diff --git a/docs/functions/_questdb_nodejs-client.float64.html b/docs/functions/_questdb_nodejs-client.float64.html index 66b6d00a..afe2e983 100644 --- a/docs/functions/_questdb_nodejs-client.float64.html +++ b/docs/functions/_questdb_nodejs-client.float64.html @@ -1,2 +1,2 @@ float64 | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number>

    diff --git a/docs/functions/_questdb_nodejs-client.geohash.html b/docs/functions/_questdb_nodejs-client.geohash.html index 0738ff9e..52956db3 100644 --- a/docs/functions/_questdb_nodejs-client.geohash.html +++ b/docs/functions/_questdb_nodejs-client.geohash.html @@ -1,4 +1,4 @@ geohash | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<QwpGeohashInput>

    diff --git a/docs/functions/_questdb_nodejs-client.int32.html b/docs/functions/_questdb_nodejs-client.int32.html index 37124d9d..a0a5ff59 100644 --- a/docs/functions/_questdb_nodejs-client.int32.html +++ b/docs/functions/_questdb_nodejs-client.int32.html @@ -1,4 +1,4 @@ int32 | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number>

    diff --git a/docs/functions/_questdb_nodejs-client.int64.html b/docs/functions/_questdb_nodejs-client.int64.html index f36f713d..69552527 100644 --- a/docs/functions/_questdb_nodejs-client.int64.html +++ b/docs/functions/_questdb_nodejs-client.int64.html @@ -1,4 +1,4 @@ int64 | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<bigint>

    diff --git a/docs/functions/_questdb_nodejs-client.ipv4.html b/docs/functions/_questdb_nodejs-client.ipv4.html index 52dae7f7..f7574b4d 100644 --- a/docs/functions/_questdb_nodejs-client.ipv4.html +++ b/docs/functions/_questdb_nodejs-client.ipv4.html @@ -1,2 +1,2 @@ ipv4 | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<QwpIpv4Input>

    diff --git a/docs/functions/_questdb_nodejs-client.isQwpDurableAckWebSocketProtocol.html b/docs/functions/_questdb_nodejs-client.isQwpDurableAckWebSocketProtocol.html index 28757ab5..aec6c444 100644 --- a/docs/functions/_questdb_nodejs-client.isQwpDurableAckWebSocketProtocol.html +++ b/docs/functions/_questdb_nodejs-client.isQwpDurableAckWebSocketProtocol.html @@ -1,2 +1,2 @@ isQwpDurableAckWebSocketProtocol | QuestDB JavaScript Client - v5.0.0

    Function isQwpDurableAckWebSocketProtocol

    +

    Parameters

    • protocol: string

    Returns boolean

    diff --git a/docs/functions/_questdb_nodejs-client.long.html b/docs/functions/_questdb_nodejs-client.long.html index c74d82bc..afe2a8cb 100644 --- a/docs/functions/_questdb_nodejs-client.long.html +++ b/docs/functions/_questdb_nodejs-client.long.html @@ -1,2 +1,2 @@ long | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<bigint>

    diff --git a/docs/functions/_questdb_nodejs-client.long256.html b/docs/functions/_questdb_nodejs-client.long256.html index 6e13454f..b64d6ecb 100644 --- a/docs/functions/_questdb_nodejs-client.long256.html +++ b/docs/functions/_questdb_nodejs-client.long256.html @@ -1,2 +1,2 @@ long256 | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<QwpLong256Input>

    diff --git a/docs/functions/_questdb_nodejs-client.longArray.html b/docs/functions/_questdb_nodejs-client.longArray.html index 483c37cb..4a94afba 100644 --- a/docs/functions/_questdb_nodejs-client.longArray.html +++ b/docs/functions/_questdb_nodejs-client.longArray.html @@ -1,4 +1,4 @@ longArray | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<QwpLongArrayInput>

    diff --git a/docs/functions/_questdb_nodejs-client.parseQwpNodeClientConfig.html b/docs/functions/_questdb_nodejs-client.parseQwpNodeClientConfig.html index c63e201c..c84f79d3 100644 --- a/docs/functions/_questdb_nodejs-client.parseQwpNodeClientConfig.html +++ b/docs/functions/_questdb_nodejs-client.parseQwpNodeClientConfig.html @@ -1,2 +1,2 @@ parseQwpNodeClientConfig | QuestDB JavaScript Client - v5.0.0

    Function parseQwpNodeClientConfig

    +

    Parameters

    Returns QwpNodeClientOptions

    diff --git a/docs/functions/_questdb_nodejs-client.qwpDefaultSenderErrorPolicy.html b/docs/functions/_questdb_nodejs-client.qwpDefaultSenderErrorPolicy.html index 17e352f0..7713eadf 100644 --- a/docs/functions/_questdb_nodejs-client.qwpDefaultSenderErrorPolicy.html +++ b/docs/functions/_questdb_nodejs-client.qwpDefaultSenderErrorPolicy.html @@ -1 +1 @@ -qwpDefaultSenderErrorPolicy | QuestDB JavaScript Client - v5.0.0

    Function qwpDefaultSenderErrorPolicy

    +qwpDefaultSenderErrorPolicy | QuestDB JavaScript Client - v5.0.0

    Function qwpDefaultSenderErrorPolicy

    diff --git a/docs/functions/_questdb_nodejs-client.qwpGorillaSize.html b/docs/functions/_questdb_nodejs-client.qwpGorillaSize.html index 55734796..3f574bd6 100644 --- a/docs/functions/_questdb_nodejs-client.qwpGorillaSize.html +++ b/docs/functions/_questdb_nodejs-client.qwpGorillaSize.html @@ -1,3 +1,3 @@ qwpGorillaSize | QuestDB JavaScript Client - v5.0.0
    • Encoded byte count, or -1 when a delta-of-delta leaves int32 range. Throws when a timestamp is outside the signed int64 wire range.

      -

      Parameters

      • timestamps: readonly bigint[]

      Returns number

    +

    Parameters

    • timestamps: readonly bigint[]

    Returns number

    diff --git a/docs/functions/_questdb_nodejs-client.qwpSenderErrorCategory.html b/docs/functions/_questdb_nodejs-client.qwpSenderErrorCategory.html index e3c7af7c..dfb4ab34 100644 --- a/docs/functions/_questdb_nodejs-client.qwpSenderErrorCategory.html +++ b/docs/functions/_questdb_nodejs-client.qwpSenderErrorCategory.html @@ -1 +1 @@ -qwpSenderErrorCategory | QuestDB JavaScript Client - v5.0.0

    Function qwpSenderErrorCategory

    +qwpSenderErrorCategory | QuestDB JavaScript Client - v5.0.0

    Function qwpSenderErrorCategory

    diff --git a/docs/functions/_questdb_nodejs-client.qwpVarintSize.html b/docs/functions/_questdb_nodejs-client.qwpVarintSize.html index c2aa144d..f1201ce7 100644 --- a/docs/functions/_questdb_nodejs-client.qwpVarintSize.html +++ b/docs/functions/_questdb_nodejs-client.qwpVarintSize.html @@ -1,2 +1,2 @@ qwpVarintSize | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    • value: number | bigint

    Returns number

    diff --git a/docs/functions/_questdb_nodejs-client.readQwpVarint.html b/docs/functions/_questdb_nodejs-client.readQwpVarint.html index e7a5d851..29c99114 100644 --- a/docs/functions/_questdb_nodejs-client.readQwpVarint.html +++ b/docs/functions/_questdb_nodejs-client.readQwpVarint.html @@ -1,2 +1,2 @@ readQwpVarint | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    Returns bigint

    diff --git a/docs/functions/_questdb_nodejs-client.readQwpVarintNumber.html b/docs/functions/_questdb_nodejs-client.readQwpVarintNumber.html index 45a9e4b6..0373e75e 100644 --- a/docs/functions/_questdb_nodejs-client.readQwpVarintNumber.html +++ b/docs/functions/_questdb_nodejs-client.readQwpVarintNumber.html @@ -1 +1 @@ -readQwpVarintNumber | QuestDB JavaScript Client - v5.0.0

    Function readQwpVarintNumber

    +readQwpVarintNumber | QuestDB JavaScript Client - v5.0.0

    Function readQwpVarintNumber

    diff --git a/docs/functions/_questdb_nodejs-client.retryQwpNodeOrphanSlot.html b/docs/functions/_questdb_nodejs-client.retryQwpNodeOrphanSlot.html index 840becad..8c65b97e 100644 --- a/docs/functions/_questdb_nodejs-client.retryQwpNodeOrphanSlot.html +++ b/docs/functions/_questdb_nodejs-client.retryQwpNodeOrphanSlot.html @@ -1,2 +1,2 @@ retryQwpNodeOrphanSlot | QuestDB JavaScript Client - v5.0.0

    Function retryQwpNodeOrphanSlot

    +

    Parameters

    • directory: string

    Returns Promise<void>

    diff --git a/docs/functions/_questdb_nodejs-client.short.html b/docs/functions/_questdb_nodejs-client.short.html index 5df0f60a..0d18c514 100644 --- a/docs/functions/_questdb_nodejs-client.short.html +++ b/docs/functions/_questdb_nodejs-client.short.html @@ -1,2 +1,2 @@ short | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<number>

    diff --git a/docs/functions/_questdb_nodejs-client.symbol.html b/docs/functions/_questdb_nodejs-client.symbol.html index 552e867b..6d7f2f4d 100644 --- a/docs/functions/_questdb_nodejs-client.symbol.html +++ b/docs/functions/_questdb_nodejs-client.symbol.html @@ -1,2 +1,2 @@ symbol | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<string>

    diff --git a/docs/functions/_questdb_nodejs-client.timestamp.html b/docs/functions/_questdb_nodejs-client.timestamp.html index e7bc1d3b..10802126 100644 --- a/docs/functions/_questdb_nodejs-client.timestamp.html +++ b/docs/functions/_questdb_nodejs-client.timestamp.html @@ -1,2 +1,2 @@ timestamp | QuestDB JavaScript Client - v5.0.0
    +

    Type Parameters

    Parameters

    Returns QwpWriterColumn<TimestampInput<Unit>>

    diff --git a/docs/functions/_questdb_nodejs-client.utf8Length.html b/docs/functions/_questdb_nodejs-client.utf8Length.html index 5ed913c0..bbde8536 100644 --- a/docs/functions/_questdb_nodejs-client.utf8Length.html +++ b/docs/functions/_questdb_nodejs-client.utf8Length.html @@ -1 +1 @@ -utf8Length | QuestDB JavaScript Client - v5.0.0
    +utf8Length | QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/functions/_questdb_nodejs-client.uuid.html b/docs/functions/_questdb_nodejs-client.uuid.html index 979ba462..53822627 100644 --- a/docs/functions/_questdb_nodejs-client.uuid.html +++ b/docs/functions/_questdb_nodejs-client.uuid.html @@ -1,2 +1,2 @@ uuid | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<QwpUuidInput>

    diff --git a/docs/functions/_questdb_nodejs-client.varchar.html b/docs/functions/_questdb_nodejs-client.varchar.html index f450a577..492b2350 100644 --- a/docs/functions/_questdb_nodejs-client.varchar.html +++ b/docs/functions/_questdb_nodejs-client.varchar.html @@ -1,2 +1,2 @@ varchar | QuestDB JavaScript Client - v5.0.0
    +

    Returns QwpWriterColumn<string>

    diff --git a/docs/functions/_questdb_nodejs-client.writeQwpFrameHeader.html b/docs/functions/_questdb_nodejs-client.writeQwpFrameHeader.html index 59ad29f5..a53029b4 100644 --- a/docs/functions/_questdb_nodejs-client.writeQwpFrameHeader.html +++ b/docs/functions/_questdb_nodejs-client.writeQwpFrameHeader.html @@ -1 +1 @@ -writeQwpFrameHeader | QuestDB JavaScript Client - v5.0.0

    Function writeQwpFrameHeader

    +writeQwpFrameHeader | QuestDB JavaScript Client - v5.0.0

    Function writeQwpFrameHeader

    diff --git a/docs/functions/_questdb_nodejs-client.writeQwpVarint.html b/docs/functions/_questdb_nodejs-client.writeQwpVarint.html index 38a0edea..edc1c387 100644 --- a/docs/functions/_questdb_nodejs-client.writeQwpVarint.html +++ b/docs/functions/_questdb_nodejs-client.writeQwpVarint.html @@ -1,2 +1,2 @@ writeQwpVarint | QuestDB JavaScript Client - v5.0.0
    +

    Parameters

    Returns void

    diff --git a/docs/hierarchy.html b/docs/hierarchy.html index 423d6752..9dfcba43 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -1 +1 @@ -QuestDB JavaScript Client - v5.0.0
    +QuestDB JavaScript Client - v5.0.0
    diff --git a/docs/index.html b/docs/index.html index 1140e8a6..52a37d70 100644 --- a/docs/index.html +++ b/docs/index.html @@ -334,6 +334,15 @@
    import { Sender } from "@questdb/nodejs-client";

    async function run() {
    // authentication details
    const CLIENT_ID = "admin";
    const PRIVATE_KEY = "ZRxmCOQBpZoj2fZ-lEtqzVDkCre_ouF3ePpaQNDwoQk";

    // pass the authentication details to the sender
    const sender = await Sender.fromConfig(
    `tcp::addr=127.0.0.1:9009;username=${CLIENT_ID};token=${PRIVATE_KEY}`,
    );
    await sender.connect();

    // add rows to the buffer of the sender
    await sender
    .table("trades")
    .symbol("symbol", "BTC-USD")
    .symbol("side", "sell")
    .floatColumn("price", 39269.98)
    .floatColumn("amount", 0.001)
    .at(Date.now(), "ms");

    // flush the buffer of the sender, sending the data to QuestDB
    await sender.flush();

    // close the connection after all rows ingested
    await sender.close();
    }

    run().catch(console.error);
    +

    You can also pass a complete private EC P-256 JWK through extraOptions.jwk, +without mutating SenderOptions:

    +
    import { readFileSync } from "node:fs";
    import { Sender } from "@questdb/nodejs-client";

    // The file must contain kid, d, x, y, kty: "EC", and crv: "P-256".
    const jwk: Record<string, string> = JSON.parse(
    readFileSync("path/to/private-jwk.json", "utf8"),
    );
    const sender = await Sender.fromConfig("tcps::addr=questdb.example:9009", {
    jwk,
    });
    await sender.connect();
    // Write and flush rows, then close the sender.
    await sender.close(); +
    + +

    The same option is supported by Sender.fromEnv({ jwk }) and the +SenderOptions constructor and factories. It takes precedence over +username/token in the configuration string and is rejected for transports +other than TCP/TCPS.

    import { Sender } from "@questdb/nodejs-client";

    async function run() {
    // create a sender
    const sender = await Sender.fromConfig("http::addr=localhost:9000");

    // order book snapshots to ingest
    const orderBooks = [
    {
    symbol: "BTC-USD",
    exchange: "Coinbase",
    timestamp: Date.now(),
    bidPrices: [50100.25, 50100.2, 50100.15, 50100.1, 50100.05],
    bidSizes: [0.5, 1.2, 2.1, 0.8, 3.5],
    askPrices: [50100.3, 50100.35, 50100.4, 50100.45, 50100.5],
    askSizes: [0.6, 1.5, 1.8, 2.2, 4.0],
    },
    {
    symbol: "ETH-USD",
    exchange: "Coinbase",
    timestamp: Date.now(),
    bidPrices: [2850.5, 2850.45, 2850.4, 2850.35, 2850.3],
    bidSizes: [5.0, 8.2, 12.5, 6.8, 15.0],
    askPrices: [2850.55, 2850.6, 2850.65, 2850.7, 2850.75],
    askSizes: [4.5, 7.8, 10.2, 8.5, 20.0],
    },
    ];

    try {
    // add rows to the buffer of the sender
    for (const orderBook of orderBooks) {
    await sender
    .table("order_book_l2")
    .symbol("symbol", orderBook.symbol)
    .symbol("exchange", orderBook.exchange)
    .arrayColumn("bid_prices", orderBook.bidPrices)
    .arrayColumn("bid_sizes", orderBook.bidSizes)
    .arrayColumn("ask_prices", orderBook.askPrices)
    .arrayColumn("ask_sizes", orderBook.askSizes)
    .at(orderBook.timestamp, "ms");
    }

    // flush the buffer of the sender, sending the data to QuestDB
    // the buffer is cleared after the data is sent, and the sender is ready to accept new data
    await sender.flush();
    } finally {
    // close the connection after all rows ingested
    await sender.close();
    }
    }

    run().then(console.log).catch(console.error);
    diff --git a/docs/interfaces/_questdb_browser-client.QwpArrayValue.html b/docs/interfaces/_questdb_browser-client.QwpArrayValue.html index e29b0203..76a6c334 100644 --- a/docs/interfaces/_questdb_browser-client.QwpArrayValue.html +++ b/docs/interfaces/_questdb_browser-client.QwpArrayValue.html @@ -1,4 +1,4 @@ -QwpArrayValue | QuestDB JavaScript Client - v5.0.0
    interface QwpArrayValue {
        dimensions: number[];
        values: (number | bigint)[];
    }
    Index

    Properties

    dimensions +QwpArrayValue | QuestDB JavaScript Client - v5.0.0
    interface QwpArrayValue {
        dimensions: number[];
        values: (number | bigint)[];
    }
    Index

    Properties

    Properties

    dimensions: number[]
    values: (number | bigint)[]

    DOUBLE_ARRAY uses numbers; LONG_ARRAY uses safe integers or signed int64 bigints.

    -
    +

    Properties

    dimensions: number[]
    values: (number | bigint)[]

    DOUBLE_ARRAY uses numbers; LONG_ARRAY uses safe integers or signed int64 bigints.

    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpBrowserAuthContext.html b/docs/interfaces/_questdb_browser-client.QwpBrowserAuthContext.html index 46f9469c..e37c0f0c 100644 --- a/docs/interfaces/_questdb_browser-client.QwpBrowserAuthContext.html +++ b/docs/interfaces/_questdb_browser-client.QwpBrowserAuthContext.html @@ -1,6 +1,6 @@ QwpBrowserAuthContext | QuestDB JavaScript Client - v5.0.0

    Interface QwpBrowserAuthContext

    Describes the connection attempt a QwpBrowserAuthProvider serves.

    -
    interface QwpBrowserAuthContext {
        signal: AbortSignal;
    }
    Index

    Properties

    interface QwpBrowserAuthContext {
        signal: AbortSignal;
    }
    Index

    Properties

    Properties

    signal: AbortSignal

    Aborted when the attempt is abandoned, because its connectTimeoutMs deadline expired or its session closed. Pass it to a token refresh so the refresh is cancelled together with the attempt.

    -
    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpBrowserClientOptions.html b/docs/interfaces/_questdb_browser-client.QwpBrowserClientOptions.html index 5e7ad758..b2d7f0b6 100644 --- a/docs/interfaces/_questdb_browser-client.QwpBrowserClientOptions.html +++ b/docs/interfaces/_questdb_browser-client.QwpBrowserClientOptions.html @@ -1,15 +1,15 @@ QwpBrowserClientOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpBrowserClientOptions

    Browser configuration for a combined pooled QWP ingress/egress client. One endpoint list and authentication bootstrap are shared, while side-specific protocol options remain explicit.

    -
    interface QwpBrowserClientOptions {
        cluster: QwpBrowserWebSocketOptions;
        egress?: Omit<
            QwpBrowserEgressOptions,
            "url"
            | "auth"
            | "sessionBootstrap"
            | "failoverUrls",
        >;
        ingress?: Omit<
            QwpBrowserIngressOptions,
            "url"
            | "auth"
            | "sessionBootstrap"
            | "failoverUrls",
        >;
        pool?: QwpClientPoolOptions;
    }
    Index

    Properties

    interface QwpBrowserClientOptions {
        cluster: QwpBrowserWebSocketOptions;
        egress?: Omit<
            QwpBrowserEgressOptions,
            "url"
            | "auth"
            | "sessionBootstrap"
            | "failoverUrls",
        >;
        ingress?: Omit<
            QwpBrowserIngressOptions,
            "url"
            | "auth"
            | "sessionBootstrap"
            | "failoverUrls",
        >;
        pool?: QwpClientPoolOptions;
    }
    Index

    Properties

    Endpoints, timeouts and authentication shared by both sides. Each URL may be an origin, a reverse-proxy base path, or an existing /write/v4 or /read/v1 endpoint; each side derives its own route from it.

    -
    egress?: Omit<
        QwpBrowserEgressOptions,
        "url"
        | "auth"
        | "sessionBootstrap"
        | "failoverUrls",
    >

    The query sessions' options, on the same terms as ingress.

    -
    ingress?: Omit<
        QwpBrowserIngressOptions,
        "url"
        | "auth"
        | "sessionBootstrap"
        | "failoverUrls",
    >

    The pooled senders' options. url, failoverUrls, sessionBootstrap and +

    egress?: Omit<
        QwpBrowserEgressOptions,
        "url"
        | "auth"
        | "sessionBootstrap"
        | "failoverUrls",
    >

    The query sessions' options, on the same terms as ingress.

    +
    ingress?: Omit<
        QwpBrowserIngressOptions,
        "url"
        | "auth"
        | "sessionBootstrap"
        | "failoverUrls",
    >

    The pooled senders' options. url, failoverUrls, sessionBootstrap and auth belong to cluster; any other connection setting given here overrides the cluster's for ingress only.

    -
    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpBrowserEgressOptions.html b/docs/interfaces/_questdb_browser-client.QwpBrowserEgressOptions.html index 602c099a..f73924a8 100644 --- a/docs/interfaces/_questdb_browser-client.QwpBrowserEgressOptions.html +++ b/docs/interfaces/_questdb_browser-client.QwpBrowserEgressOptions.html @@ -1,7 +1,7 @@ QwpBrowserEgressOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpBrowserEgressOptions

    Everything a browser QWP query session takes: the connection, endpoint routing, result compression, and the session's flow control, deadlines and failover.

    -
    interface QwpBrowserEgressOptions {
        auth?: QwpBrowserSessionAuthentication | QwpBrowserAuthProvider;
        bufferPoolSize?: number;
        cancelDrainTimeoutMs?: number;
        closeTimeoutMs?: number;
        compression?: QwpEgressCompression;
        compressionLevel?: number;
        connectionListenerInboxCapacity?: number;
        connectTimeoutMs?: number;
        failoverUrls?: readonly (string | URL)[];
        initialCredit?: number | bigint;
        maxBatchRows?: number;
        onFailoverReset?: (
            event: QwpEgressFailoverResetEvent,
        ) => void | Promise<void>;
        protocols?: string | string[];
        queryTimeoutMs?: number;
        reconnect?: false | QwpEgressReconnectOptions;
        sendTimeoutMs?: number;
        serverInfoTimeoutMs?: number;
        sessionBootstrap?: QwpBrowserSessionBootstrapConfig;
        target?: QwpTarget;
        url: string | URL;
        webSocketFactory?: (
            url: string | URL,
            protocols?: string | string[],
        ) => QwpWebSocketLike;
        zone?: string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    interface QwpBrowserEgressOptions {
        auth?: QwpBrowserSessionAuthentication | QwpBrowserAuthProvider;
        bufferPoolSize?: number;
        cancelDrainTimeoutMs?: number;
        closeTimeoutMs?: number;
        compression?: QwpEgressCompression;
        compressionLevel?: number;
        connectionListenerInboxCapacity?: number;
        connectTimeoutMs?: number;
        failoverUrls?: readonly (string | URL)[];
        initialCredit?: number | bigint;
        maxBatchRows?: number;
        onFailoverReset?: (
            event: QwpEgressFailoverResetEvent,
        ) => void | Promise<void>;
        protocols?: string | string[];
        queryTimeoutMs?: number;
        reconnect?: false | QwpEgressReconnectOptions;
        sendTimeoutMs?: number;
        serverInfoTimeoutMs?: number;
        sessionBootstrap?: QwpBrowserSessionBootstrapConfig;
        target?: QwpTarget;
        url: string | URL;
        webSocketFactory?: (
            url: string | URL,
            protocols?: string | string[],
        ) => QwpWebSocketLike;
        zone?: string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    auth? bufferPoolSize? cancelDrainTimeoutMs? closeTimeoutMs? @@ -36,55 +36,55 @@ sessionBootstrap. It creates no session for the credential and ignores cookies on the upgrade. Use wss:: the credential travels in the opening HTTP request. Cannot be combined with sessionBootstrap.

    -
    bufferPoolSize?: number

    Maximum decoded batches waiting for a consumer. Defaults to 4.

    -
    cancelDrainTimeoutMs?: number

    Maximum wait for a terminal response after CANCEL, and the grace period of +

    bufferPoolSize?: number

    Maximum decoded batches waiting for a consumer. Defaults to 4.

    +
    cancelDrainTimeoutMs?: number

    Maximum wait for a terminal response after CANCEL, and the grace period of a query timeout: how long an expired query may take to end before its caller is released, and how long its connection may then take to drain it. Defaults to 5 seconds. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    closeTimeoutMs?: number

    Maximum time allowed for a graceful WebSocket close. Defaults to 15s. +

    closeTimeoutMs?: number

    Maximum time allowed for a graceful WebSocket close. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    compression?: QwpEgressCompression

    Requests Zstd-compressed result batches through browser-visible URL +

    compression?: QwpEgressCompression

    Requests Zstd-compressed result batches through browser-visible URL negotiation. Defaults to raw for compatibility.

    -
    compressionLevel?: number

    Zstd level hint. Must be between 1 and 22, and only takes effect +

    compressionLevel?: number

    Zstd level hint. Must be between 1 and 22, and only takes effect alongside compression; the default raw negotiates no compression for a level to travel on.

    -
    connectionListenerInboxCapacity?: number

    Bounded inbox depth for reconnect.onEvent. Defaults to 64, matching +

    connectionListenerInboxCapacity?: number

    Bounded inbox depth for reconnect.onEvent. Defaults to 64, matching ingress. Overflow drops the oldest pending notification.

    -
    connectTimeoutMs?: number

    Node TCP/TLS connection deadline, or the complete opening deadline in a +

    connectTimeoutMs?: number

    Node TCP/TLS connection deadline, or the complete opening deadline in a browser. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    failoverUrls?: readonly (string | URL)[]

    Additional endpoints attempted in order when the preferred endpoint fails.

    -
    initialCredit?: number | bigint

    Default per-query send-ahead credit. Defaults to zero (unbounded).

    -
    maxBatchRows?: number

    Requests a server-side RESULT_BATCH row cap, and rejects a batch that +

    failoverUrls?: readonly (string | URL)[]

    Additional endpoints attempted in order when the preferred endpoint fails.

    +
    initialCredit?: number | bigint

    Default per-query send-ahead credit. Defaults to zero (unbounded).

    +
    maxBatchRows?: number

    Requests a server-side RESULT_BATCH row cap, and rejects a batch that declares more rows: decoder scratch is sized from the declared row count and retained for the session's lifetime.

    -
    onFailoverReset?: (event: QwpEgressFailoverResetEvent) => void | Promise<void>

    Default notification immediately before an active query is re-executed. +

    onFailoverReset?: (event: QwpEgressFailoverResetEvent) => void | Promise<void>

    Default notification immediately before an active query is re-executed. Not-yet-consumed batches are discarded automatically; callers that retain an already-consumed prefix should discard it here. A query's own onFailoverReset overrides this callback, which is important for pooled sessions whose request IDs may overlap.

    -
    protocols?: string | string[]
    queryTimeoutMs?: number

    Default per-query timeout, measured from the query() call. Zero or +

    protocols?: string | string[]
    queryTimeoutMs?: number

    Default per-query timeout, measured from the query() call. Zero or undefined disables query timeouts. Once it expires no further batch is delivered and the query is cancelled; see QwpEgressQueryOptions.timeoutMs for how the outcome is reported. The connect-string key is query_timeout_ms. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    reconnect?: false | QwpEgressReconnectOptions

    Bounded failover policy. Failover and at-least-once active-query replay +

    reconnect?: false | QwpEgressReconnectOptions

    Bounded failover policy. Failover and at-least-once active-query replay are enabled by default; set false to keep one fixed connection.

    -
    sendTimeoutMs?: number

    Maximum time a send may remain queued by the WebSocket. Defaults to 15s. +

    sendTimeoutMs?: number

    Maximum time a send may remain queued by the WebSocket. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    serverInfoTimeoutMs?: number

    SERVER_INFO handshake deadline. Defaults to 5 seconds. Capped at +

    serverInfoTimeoutMs?: number

    SERVER_INFO handshake deadline. Defaults to 5 seconds. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -

    Authenticates over REST before every WebSocket connection attempt so the +

    Authenticates over REST before every WebSocket connection attempt so the browser can attach QuestDB's HttpOnly session cookies to the upgrade. Without a url, it targets /exec beside the endpoint being connected. Cannot be combined with auth.

    -
    target?: QwpTarget

    Selects any readable node, a primary/standalone node, or a replica.

    -
    url: string | URL
    webSocketFactory?: (
        url: string | URL,
        protocols?: string | string[],
    ) => QwpWebSocketLike

    Test or framework hook; defaults to the browser's global WebSocket. Under +

    target?: QwpTarget

    Selects any readable node, a primary/standalone node, or a replica.

    +
    url: string | URL
    webSocketFactory?: (
        url: string | URL,
        protocols?: string | string[],
    ) => QwpWebSocketLike

    Test or framework hook; defaults to the browser's global WebSocket. Under a client's cluster it is shared, and either side may override it.

    -
    zone?: string

    Opaque, case-insensitive preferred zone; cross-zone fallback stays enabled.

    -
    +
    zone?: string

    Opaque, case-insensitive preferred zone; cross-zone fallback stays enabled.

    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpBrowserIngressOptions.html b/docs/interfaces/_questdb_browser-client.QwpBrowserIngressOptions.html index e6c32f0d..48d1303b 100644 --- a/docs/interfaces/_questdb_browser-client.QwpBrowserIngressOptions.html +++ b/docs/interfaces/_questdb_browser-client.QwpBrowserIngressOptions.html @@ -1,6 +1,6 @@ QwpBrowserIngressOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpBrowserIngressOptions

    Everything a browser QWP sender takes: the connection, row buffering and flushing, and delivery -- acknowledgement, reconnect and in-memory replay.

    -
    interface QwpBrowserIngressOptions {
        ackTimeoutMs?: number;
        auth?: QwpBrowserSessionAuthentication | QwpBrowserAuthProvider;
        autoFlush?: boolean;
        autoFlushBytes?: number;
        autoFlushIntervalMs?: number;
        autoFlushRows?: number;
        closeFlushTimeoutMs?: number;
        closeTimeoutMs?: number;
        connectionListenerInboxCapacity?: number;
        connectTimeoutMs?: number;
        durableAckKeepaliveMs?: number;
        errorInboxCapacity?: number;
        failoverUrls?: readonly (string | URL)[];
        gorilla?: boolean;
        ingressNegotiationTimeoutMs?: number;
        initialConnectMode?: QwpInitialConnectMode;
        log?: QwpSenderLogger;
        maxBatchSizeBytes?: number;
        maxNameLength?: number;
        memoryReplayAppendDeadlineMs?: number;
        memoryReplayMaxBytes?: number;
        onDurableAck?: (response: QwpIngressResponse) => void;
        onError?: (event: QwpIngressErrorEvent) => void;
        onProgress?: (event: QwpIngressProgressEvent) => void;
        onResponse?: (response: QwpIngressResponse) => void;
        onSenderError?: (error: QwpSenderError) => void;
        protocols?: string | string[];
        reconnect?: false | QwpIngressReconnectOptions;
        requestDurableAck?: boolean;
        sendTimeoutMs?: number;
        sessionBootstrap?: QwpBrowserSessionBootstrapConfig;
        symbolDictionary?: "delta" | "full";
        transactional?: boolean;
        url: string | URL;
        webSocketFactory?: (
            url: string | URL,
            protocols?: string | string[],
        ) => QwpWebSocketLike;
    }

    Hierarchy (View Summary)

    Index

    Properties

    interface QwpBrowserIngressOptions {
        ackTimeoutMs?: number;
        auth?: QwpBrowserSessionAuthentication | QwpBrowserAuthProvider;
        autoFlush?: boolean;
        autoFlushBytes?: number;
        autoFlushIntervalMs?: number;
        autoFlushRows?: number;
        closeFlushTimeoutMs?: number;
        closeTimeoutMs?: number;
        connectionListenerInboxCapacity?: number;
        connectTimeoutMs?: number;
        durableAckKeepaliveMs?: number;
        errorInboxCapacity?: number;
        failoverUrls?: readonly (string | URL)[];
        gorilla?: boolean;
        ingressNegotiationTimeoutMs?: number;
        initialConnectMode?: QwpInitialConnectMode;
        log?: QwpSenderLogger;
        maxBatchSizeBytes?: number;
        maxNameLength?: number;
        memoryReplayAppendDeadlineMs?: number;
        memoryReplayMaxBytes?: number;
        onDurableAck?: (response: QwpIngressResponse) => void;
        onError?: (event: QwpIngressErrorEvent) => void;
        onProgress?: (event: QwpIngressProgressEvent) => void;
        onResponse?: (response: QwpIngressResponse) => void;
        onSenderError?: (error: QwpSenderError) => void;
        protocols?: string | string[];
        reconnect?: false | QwpIngressReconnectOptions;
        requestDurableAck?: boolean;
        sendTimeoutMs?: number;
        sessionBootstrap?: QwpBrowserSessionBootstrapConfig;
        symbolDictionary?: "delta" | "full";
        transactional?: boolean;
        url: string | URL;
        webSocketFactory?: (
            url: string | URL,
            protocols?: string | string[],
        ) => QwpWebSocketLike;
    }

    Hierarchy (View Summary)

    Index

    Properties

    ackTimeoutMs? auth? autoFlush? autoFlushBytes? @@ -39,7 +39,7 @@ how long a wait may go without the ACK watermark advancing. Defaults to 15 seconds. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -

    Authenticates every WebSocket upgrade with a credential carried in its +

    Authenticates every WebSocket upgrade with a credential carried in its subprotocol offer instead of a session cookie. This is how a web application served from another origin, which QuestDB lists in qwp.browser.allowed.origins, connects. Pass a fixed credential, or a @@ -52,43 +52,43 @@ sessionBootstrap. It creates no session for the credential and ignores cookies on the upgrade. Use wss:: the credential travels in the opening HTTP request. Cannot be combined with sessionBootstrap.

    -
    autoFlush?: boolean
    autoFlushBytes?: number

    Soft threshold for estimated buffered column bytes. Zero disables the byte +

    autoFlush?: boolean
    autoFlushBytes?: number

    Soft threshold for estimated buffered column bytes. Zero disables the byte trigger. Defaults to zero and is clamped below a connected server's batch cap; exact encoded frames remain subject to the protocol batch limit.

    -
    autoFlushIntervalMs?: number

    Not capped at the host timer ceiling: compared against elapsed time only.

    -
    autoFlushRows?: number
    closeFlushTimeoutMs?: number

    Maximum time close() spends publishing queued rows and waiting for the +

    autoFlushIntervalMs?: number

    Not capped at the host timer ceiling: compared against elapsed time only.

    +
    autoFlushRows?: number
    closeFlushTimeoutMs?: number

    Maximum time close() spends publishing queued rows and waiting for the server ACK watermark. Zero or a negative value skips the ACK wait, but RAM-backed frames still have up to 5 seconds to reach the socket before close() reports a timeout; if the session can no longer send them at all, close() rejects with its failure. Defaults to 5 seconds. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    closeTimeoutMs?: number

    Maximum time allowed for a graceful WebSocket close. Defaults to 15s. +

    closeTimeoutMs?: number

    Maximum time allowed for a graceful WebSocket close. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    connectionListenerInboxCapacity?: number

    Bounded reconnect-listener inbox. Oldest pending events are dropped when +

    connectionListenerInboxCapacity?: number

    Bounded reconnect-listener inbox. Oldest pending events are dropped when full. Defaults to 64, matching the Java client.

    -
    connectTimeoutMs?: number

    Node TCP/TLS connection deadline, or the complete opening deadline in a +

    connectTimeoutMs?: number

    Node TCP/TLS connection deadline, or the complete opening deadline in a browser. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    durableAckKeepaliveMs?: number

    Durable-ACK keepalive interval. While committed table transactions await +

    durableAckKeepaliveMs?: number

    Durable-ACK keepalive interval. While committed table transactions await durable upload, Node transports send WebSocket PING frames and browser transports send table-less QWP poll frames. Takes effect only with requestDurableAck: true, where it defaults to 200ms; otherwise it is ignored, as in the Java and Rust clients. Zero disables the keepalive but still tracks durable progress. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    errorInboxCapacity?: number

    Bounded typed/legacy error inbox. Oldest pending errors are dropped when +

    errorInboxCapacity?: number

    Bounded typed/legacy error inbox. Oldest pending errors are dropped when full. Defaults to 256, matching the Java client.

    -
    failoverUrls?: readonly (string | URL)[]

    Additional endpoints attempted in order when the preferred endpoint fails.

    -
    gorilla?: boolean

    Gorilla-compresses TIMESTAMP and TIMESTAMP_NANOS columns; a column whose +

    failoverUrls?: readonly (string | URL)[]

    Additional endpoints attempted in order when the preferred endpoint fails.

    +
    gorilla?: boolean

    Gorilla-compresses TIMESTAMP and TIMESTAMP_NANOS columns; a column whose deltas the encoding cannot represent is sent raw. Defaults to true. UDP senders always disable it.

    -
    ingressNegotiationTimeoutMs?: number

    Time allowed for the optional ingress SERVER_INFO message. Defaults to +

    ingressNegotiationTimeoutMs?: number

    Time allowed for the optional ingress SERVER_INFO message. Defaults to 250ms; zero disables the initial wait while retaining late negotiation. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    initialConnectMode?: QwpInitialConnectMode

    Startup policy when no server is reachable; the typed spelling of the +

    initialConnectMode?: QwpInitialConnectMode

    Startup policy when no server is reachable; the typed spelling of the initial_connect_retry configuration-string key.

    • "off" makes one pass over the endpoints and fails fast.
    • @@ -105,15 +105,15 @@ reconnectInitialBackoffMs or reconnectMaxBackoffMs is set. "sync" and "async" require reconnection, so they cannot be combined with reconnect: false.

      -
    maxBatchSizeBytes?: number

    Optional local ingress frame cap. Browsers cannot read WebSocket upgrade +

    maxBatchSizeBytes?: number

    Optional local ingress frame cap. Browsers cannot read WebSocket upgrade headers, so browser applications should set this to the server's configured QWP cap. When the server also advertises a cap, the smaller value wins. Table batches are split at row boundaries automatically; an individual row that cannot fit is rejected with QwpBatchTooLargeError before it is sent.

    -
    maxNameLength?: number

    Maximum UTF-8 byte length of table and column names. Defaults to 127.

    -
    memoryReplayAppendDeadlineMs?: number

    Maximum time a memory replay append waits for ACK-driven trimming after +

    maxNameLength?: number

    Maximum UTF-8 byte length of table and column names. Defaults to 127.

    +
    memoryReplayAppendDeadlineMs?: number

    Maximum time a memory replay append waits for ACK-driven trimming after reaching memoryReplayMaxBytes. Defaults to 30 seconds.

    -
    memoryReplayMaxBytes?: number

    Target cap for the built-in memory-only replay queue. Each queued frame +

    memoryReplayMaxBytes?: number

    Target cap for the built-in memory-only replay queue. Each queued frame counts its payload plus 1 KiB for the bookkeeping it keeps in memory, so the cap bounds the memory a backlog of small frames takes as well; the default holds about 127,000 one-row frames. Defaults to 128 MiB. A @@ -124,13 +124,13 @@ trim frames awaiting durability. This applies in browsers and non-persistent Node sessions; a Node store-and-forward journal is bounded by its own maxBytes instead.

    -
    onDurableAck?: (response: QwpIngressResponse) => void
    onError?: (event: QwpIngressErrorEvent) => void

    Server rejections and terminal session failures. A waitForAck() that times +

    onDurableAck?: (response: QwpIngressResponse) => void
    onError?: (event: QwpIngressErrorEvent) => void

    Server rejections and terminal session failures. A waitForAck() that times out is reported only to its caller.

    -
    onProgress?: (event: QwpIngressProgressEvent) => void

    Monotonic send/accept/durability notifications. Callback errors are ignored.

    -
    onResponse?: (response: QwpIngressResponse) => void
    onSenderError?: (error: QwpSenderError) => void

    Java-parity typed server-rejection and data-loss notifications. When +

    onProgress?: (event: QwpIngressProgressEvent) => void

    Monotonic send/accept/durability notifications. Callback errors are ignored.

    +
    onResponse?: (response: QwpIngressResponse) => void
    onSenderError?: (error: QwpSenderError) => void

    Java-parity typed server-rejection and data-loss notifications. When omitted, the default handler logs retriable errors at warn and terminal errors or abandoned data at error.

    -
    protocols?: string | string[]
    reconnect?: false | QwpIngressReconnectOptions

    Reconnection and at-least-once replay policy. Reconnection is +

    protocols?: string | string[]
    reconnect?: false | QwpIngressReconnectOptions

    Reconnection and at-least-once replay policy. Reconnection is enabled by default for factory-created sessions; set false to keep one fixed connection. Browser and non-persistent Node replay is memory-only. When initialConnectMode is not set, the first connect is a single attempt @@ -142,22 +142,22 @@

    An ACK lost during disconnect can cause a frame to be replayed after the server accepted it; configure server-side deduplication when duplicates are not acceptable.

    -
    requestDurableAck?: boolean

    Requests durable ingress ACKs through browser-visible WebSocket +

    requestDurableAck?: boolean

    Requests durable ingress ACKs through browser-visible WebSocket subprotocol negotiation. durableAckKeepaliveMs takes effect only alongside it.

    -
    sendTimeoutMs?: number

    Maximum time a send may remain queued by the WebSocket. Defaults to 15s. +

    sendTimeoutMs?: number

    Maximum time a send may remain queued by the WebSocket. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -

    Authenticates over REST before every WebSocket connection attempt so the +

    Authenticates over REST before every WebSocket connection attempt so the browser can attach QuestDB's HttpOnly session cookies to the upgrade. Without a url, it targets /exec beside the endpoint being connected. Cannot be combined with auth.

    -
    symbolDictionary?: "delta" | "full"

    Connection-scoped symbol dictionary deltas are the default; full opts +

    symbolDictionary?: "delta" | "full"

    Connection-scoped symbol dictionary deltas are the default; full opts out, so every frame carries its own dictionaries. UDP senders always use full.

    -
    transactional?: boolean

    Keep auto-flushed rows in an open server-side transaction. An explicit +

    transactional?: boolean

    Keep auto-flushed rows in an open server-side transaction. An explicit flush() closes the transaction. QWP transactions are atomic per table, rather than across every table in a multi-table flush.

    -
    url: string | URL
    webSocketFactory?: (
        url: string | URL,
        protocols?: string | string[],
    ) => QwpWebSocketLike

    Test or framework hook; defaults to the browser's global WebSocket. Under +

    url: string | URL
    webSocketFactory?: (
        url: string | URL,
        protocols?: string | string[],
    ) => QwpWebSocketLike

    Test or framework hook; defaults to the browser's global WebSocket. Under a client's cluster it is shared, and either side may override it.

    -
    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpBrowserSessionBootstrapOptions.html b/docs/interfaces/_questdb_browser-client.QwpBrowserSessionBootstrapOptions.html index f81b6962..e0ab3ad9 100644 --- a/docs/interfaces/_questdb_browser-client.QwpBrowserSessionBootstrapOptions.html +++ b/docs/interfaces/_questdb_browser-client.QwpBrowserSessionBootstrapOptions.html @@ -1,10 +1,10 @@ -QwpBrowserSessionBootstrapOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpBrowserSessionBootstrapOptions

    interface QwpBrowserSessionBootstrapOptions {
        authentication: QwpBrowserSessionAuthentication;
        fetch?: QwpBrowserFetch;
        serviceAccount?: string;
        signal?: AbortSignal;
        url: string | URL;
    }
    Index

    Properties

    authentication +QwpBrowserSessionBootstrapOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpBrowserSessionBootstrapOptions

    interface QwpBrowserSessionBootstrapOptions {
        authentication: QwpBrowserSessionAuthentication;
        fetch?: QwpBrowserFetch;
        serviceAccount?: string;
        signal?: AbortSignal;
        url: string | URL;
    }
    Index

    Properties

    Test or framework hook; defaults to the browser's global fetch.

    -
    serviceAccount?: string

    Optional Enterprise service account to assume for subsequent QWP use.

    -
    signal?: AbortSignal

    Cancels only the REST bootstrap request.

    -
    url: string | URL

    Exact QuestDB /exec HTTP(S) URL used to create the session cookie.

    -
    +

    Properties

    Test or framework hook; defaults to the browser's global fetch.

    +
    serviceAccount?: string

    Optional Enterprise service account to assume for subsequent QWP use.

    +
    signal?: AbortSignal

    Cancels only the REST bootstrap request.

    +
    url: string | URL

    Exact QuestDB /exec HTTP(S) URL used to create the session cookie.

    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpBrowserSessionBootstrapResult.html b/docs/interfaces/_questdb_browser-client.QwpBrowserSessionBootstrapResult.html index ff013a86..565483dd 100644 --- a/docs/interfaces/_questdb_browser-client.QwpBrowserSessionBootstrapResult.html +++ b/docs/interfaces/_questdb_browser-client.QwpBrowserSessionBootstrapResult.html @@ -1,4 +1,4 @@ -QwpBrowserSessionBootstrapResult | QuestDB JavaScript Client - v5.0.0

    Interface QwpBrowserSessionBootstrapResult

    interface QwpBrowserSessionBootstrapResult {
        serviceAccount?: string;
        status: number;
        url: string;
    }
    Index

    Properties

    serviceAccount? +QwpBrowserSessionBootstrapResult | QuestDB JavaScript Client - v5.0.0

    Interface QwpBrowserSessionBootstrapResult

    interface QwpBrowserSessionBootstrapResult {
        serviceAccount?: string;
        status: number;
        url: string;
    }
    Index

    Properties

    serviceAccount?: string
    status: number
    url: string
    +

    Properties

    serviceAccount?: string
    status: number
    url: string
    diff --git a/docs/interfaces/_questdb_browser-client.QwpBrowserWebSocketOptions.html b/docs/interfaces/_questdb_browser-client.QwpBrowserWebSocketOptions.html index 5c29ce39..f34fd101 100644 --- a/docs/interfaces/_questdb_browser-client.QwpBrowserWebSocketOptions.html +++ b/docs/interfaces/_questdb_browser-client.QwpBrowserWebSocketOptions.html @@ -5,7 +5,7 @@ authentication is enabled, a same-origin app can pass sessionBootstrap or call bootstrapQwpBrowserSession() first so the browser can attach qdb_session; an app on a listed origin passes auth instead.

    -
    interface QwpBrowserWebSocketOptions {
        auth?: QwpBrowserSessionAuthentication | QwpBrowserAuthProvider;
        closeTimeoutMs?: number;
        connectTimeoutMs?: number;
        failoverUrls?: readonly (string | URL)[];
        protocols?: string | string[];
        sendTimeoutMs?: number;
        sessionBootstrap?: QwpBrowserSessionBootstrapConfig;
        url: string | URL;
        webSocketFactory?: (
            url: string | URL,
            protocols?: string | string[],
        ) => QwpWebSocketLike;
    }

    Hierarchy (View Summary)

    Index

    Properties

    interface QwpBrowserWebSocketOptions {
        auth?: QwpBrowserSessionAuthentication | QwpBrowserAuthProvider;
        closeTimeoutMs?: number;
        connectTimeoutMs?: number;
        failoverUrls?: readonly (string | URL)[];
        protocols?: string | string[];
        sendTimeoutMs?: number;
        sessionBootstrap?: QwpBrowserSessionBootstrapConfig;
        url: string | URL;
        webSocketFactory?: (
            url: string | URL,
            protocols?: string | string[],
        ) => QwpWebSocketLike;
    }

    Hierarchy (View Summary)

    Index

    Properties

    auth? closeTimeoutMs? connectTimeoutMs? failoverUrls? @@ -27,20 +27,20 @@ sessionBootstrap. It creates no session for the credential and ignores cookies on the upgrade. Use wss:: the credential travels in the opening HTTP request. Cannot be combined with sessionBootstrap.

    -
    closeTimeoutMs?: number

    Maximum time allowed for a graceful WebSocket close. Defaults to 15s. +

    closeTimeoutMs?: number

    Maximum time allowed for a graceful WebSocket close. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    connectTimeoutMs?: number

    Node TCP/TLS connection deadline, or the complete opening deadline in a +

    connectTimeoutMs?: number

    Node TCP/TLS connection deadline, or the complete opening deadline in a browser. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    failoverUrls?: readonly (string | URL)[]

    Additional endpoints attempted in order when the preferred endpoint fails.

    -
    protocols?: string | string[]
    sendTimeoutMs?: number

    Maximum time a send may remain queued by the WebSocket. Defaults to 15s. +

    failoverUrls?: readonly (string | URL)[]

    Additional endpoints attempted in order when the preferred endpoint fails.

    +
    protocols?: string | string[]
    sendTimeoutMs?: number

    Maximum time a send may remain queued by the WebSocket. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -

    Authenticates over REST before every WebSocket connection attempt so the +

    Authenticates over REST before every WebSocket connection attempt so the browser can attach QuestDB's HttpOnly session cookies to the upgrade. Without a url, it targets /exec beside the endpoint being connected. Cannot be combined with auth.

    -
    url: string | URL
    webSocketFactory?: (
        url: string | URL,
        protocols?: string | string[],
    ) => QwpWebSocketLike

    Test or framework hook; defaults to the browser's global WebSocket. Under +

    url: string | URL
    webSocketFactory?: (
        url: string | URL,
        protocols?: string | string[],
    ) => QwpWebSocketLike

    Test or framework hook; defaults to the browser's global WebSocket. Under a client's cluster it is shared, and either side may override it.

    -
    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpCacheResetMessage.html b/docs/interfaces/_questdb_browser-client.QwpCacheResetMessage.html index 0b53f71c..f21be658 100644 --- a/docs/interfaces/_questdb_browser-client.QwpCacheResetMessage.html +++ b/docs/interfaces/_questdb_browser-client.QwpCacheResetMessage.html @@ -1,7 +1,7 @@ -QwpCacheResetMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpCacheResetMessage

    interface QwpCacheResetMessage {
        flags: number;
        kind: "cache-reset";
        payloadLength: number;
        resetMask: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags +QwpCacheResetMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpCacheResetMessage

    interface QwpCacheResetMessage {
        flags: number;
        kind: "cache-reset";
        payloadLength: number;
        resetMask: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags: number
    kind: "cache-reset"
    payloadLength: number
    resetMask: number
    tableCount: number
    version: number
    +

    Properties

    flags: number
    kind: "cache-reset"
    payloadLength: number
    resetMask: number
    tableCount: number
    version: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpClientFactories.html b/docs/interfaces/_questdb_browser-client.QwpClientFactories.html index c008c6ba..3c8637f1 100644 --- a/docs/interfaces/_questdb_browser-client.QwpClientFactories.html +++ b/docs/interfaces/_questdb_browser-client.QwpClientFactories.html @@ -1,9 +1,9 @@ -QwpClientFactories | QuestDB JavaScript Client - v5.0.0

    Interface QwpClientFactories

    interface QwpClientFactories {
        senderSlotReservation?: QwpPoolSlotReservation;
        close(): void | Promise<void>;
        createQuerySession(
            slot: number,
            signal?: AbortSignal,
        ): Promise<QwpEgressSession>;
        createSender(slot: number, signal?: AbortSignal): Promise<QwpSender>;
        start(): void | Promise<void>;
    }
    Index

    Properties

    senderSlotReservation? +QwpClientFactories | QuestDB JavaScript Client - v5.0.0

    Interface QwpClientFactories

    interface QwpClientFactories {
        senderSlotReservation?: QwpPoolSlotReservation;
        close(): void | Promise<void>;
        createQuerySession(
            slot: number,
            signal?: AbortSignal,
        ): Promise<QwpEgressSession>;
        createSender(slot: number, signal?: AbortSignal): Promise<QwpSender>;
        start(): void | Promise<void>;
    }
    Index

    Properties

    senderSlotReservation?: QwpPoolSlotReservation

    Coordinates stable persistent sender slots with recovery.

    -

    Methods

    +

    Methods

    diff --git a/docs/interfaces/_questdb_browser-client.QwpClientMetrics.html b/docs/interfaces/_questdb_browser-client.QwpClientMetrics.html index 904b862c..f833f363 100644 --- a/docs/interfaces/_questdb_browser-client.QwpClientMetrics.html +++ b/docs/interfaces/_questdb_browser-client.QwpClientMetrics.html @@ -1,5 +1,5 @@ -QwpClientMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpClientMetrics

    interface QwpClientMetrics {
        closed: boolean;
        closing: boolean;
        queries: QwpResourcePoolMetrics;
        senders: QwpResourcePoolMetrics;
    }
    Index

    Properties

    closed +QwpClientMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpClientMetrics

    interface QwpClientMetrics {
        closed: boolean;
        closing: boolean;
        queries: QwpResourcePoolMetrics;
        senders: QwpResourcePoolMetrics;
    }
    Index

    Properties

    closed: boolean
    closing: boolean
    +

    Properties

    closed: boolean
    closing: boolean
    diff --git a/docs/interfaces/_questdb_browser-client.QwpClientPoolOptions.html b/docs/interfaces/_questdb_browser-client.QwpClientPoolOptions.html index aa336bf7..745c9746 100644 --- a/docs/interfaces/_questdb_browser-client.QwpClientPoolOptions.html +++ b/docs/interfaces/_questdb_browser-client.QwpClientPoolOptions.html @@ -1,4 +1,4 @@ -QwpClientPoolOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpClientPoolOptions

    interface QwpClientPoolOptions {
        acquireTimeoutMs?: number;
        housekeepingIntervalMs?: number;
        idleTimeoutMs?: number;
        maxLifetimeMs?: number;
        queryPoolMax?: number;
        queryPoolMin?: number;
        senderPoolMax?: number;
        senderPoolMin?: number;
    }
    Index

    Properties

    acquireTimeoutMs? +QwpClientPoolOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpClientPoolOptions

    interface QwpClientPoolOptions {
        acquireTimeoutMs?: number;
        housekeepingIntervalMs?: number;
        idleTimeoutMs?: number;
        maxLifetimeMs?: number;
        queryPoolMax?: number;
        queryPoolMin?: number;
        senderPoolMax?: number;
        senderPoolMin?: number;
    }
    Index

    Properties

    acquireTimeoutMs? housekeepingIntervalMs? idleTimeoutMs? maxLifetimeMs? @@ -10,17 +10,17 @@ The shutdown wait is capped at 5 seconds. Defaults to 5 seconds. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    housekeepingIntervalMs?: number

    Idle/lifetime sweep interval. Defaults to 5s and must be at least 100ms. +

    housekeepingIntervalMs?: number

    Idle/lifetime sweep interval. Defaults to 5s and must be at least 100ms. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    idleTimeoutMs?: number

    Idle time before an excess pooled connection is closed. Defaults to 60s; +

    idleTimeoutMs?: number

    Idle time before an excess pooled connection is closed. Defaults to 60s; zero disables. Not capped at the host timer ceiling: compared against elapsed time only.

    -
    maxLifetimeMs?: number

    Maximum pooled connection age before recycling it while idle. Defaults to +

    maxLifetimeMs?: number

    Maximum pooled connection age before recycling it while idle. Defaults to 30m; zero disables. Not capped at the host timer ceiling: compared against elapsed time only.

    -
    queryPoolMax?: number

    Maximum concurrently borrowed query connections. Defaults to 4.

    -
    queryPoolMin?: number

    Warm egress connections created by connect(). Defaults to 1.

    -
    senderPoolMax?: number

    Maximum concurrently borrowed ingress senders. Defaults to 4.

    -
    senderPoolMin?: number

    Warm ingress connections created by connect(). Defaults to 1.

    -
    +
    queryPoolMax?: number

    Maximum concurrently borrowed query connections. Defaults to 4.

    +
    queryPoolMin?: number

    Warm egress connections created by connect(). Defaults to 1.

    +
    senderPoolMax?: number

    Maximum concurrently borrowed ingress senders. Defaults to 4.

    +
    senderPoolMin?: number

    Warm ingress connections created by connect(). Defaults to 1.

    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpColumnBuffer.html b/docs/interfaces/_questdb_browser-client.QwpColumnBuffer.html index 0eb2916e..9dfe0bc5 100644 --- a/docs/interfaces/_questdb_browser-client.QwpColumnBuffer.html +++ b/docs/interfaces/_questdb_browser-client.QwpColumnBuffer.html @@ -1,4 +1,4 @@ -QwpColumnBuffer | QuestDB JavaScript Client - v5.0.0
    interface QwpColumnBuffer {
        committedValues: number;
        decimalScale?: number;
        geohashPrecision?: number;
        name: string;
        nulls: boolean[];
        size: number;
        type: QwpColumnType;
        values: unknown[];
    }
    Index

    Properties

    committedValues +QwpColumnBuffer | QuestDB JavaScript Client - v5.0.0
    interface QwpColumnBuffer {
        committedValues: number;
        decimalScale?: number;
        geohashPrecision?: number;
        name: string;
        nulls: boolean[];
        size: number;
        type: QwpColumnType;
        values: unknown[];
    }
    Index

    Properties

    committedValues: number

    Length values had when the last row completed -- everything past it belongs to the row in progress. rollbackRow() truncates to this mark; see the failure it exists to prevent there. Maintained by QwpTableBuffer.

    -
    decimalScale?: number
    geohashPrecision?: number
    name: string
    nulls: boolean[]

    One entry per row; true means NULL.

    -
    size: number

    Rows accounted for so far, including nulls.

    -
    values: unknown[]

    Non-null values only; QWP compacts values around the null bitmap. +

    decimalScale?: number
    geohashPrecision?: number
    name: string
    nulls: boolean[]

    One entry per row; true means NULL.

    +
    size: number

    Rows accounted for so far, including nulls.

    +
    values: unknown[]

    Non-null values only; QWP compacts values around the null bitmap. LONG, DATE, and TIMESTAMP values accept safe integer numbers or signed int64 bigints. LONG_ARRAY applies the same rule to every element.

    -
    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpConnectionCloseInfo.html b/docs/interfaces/_questdb_browser-client.QwpConnectionCloseInfo.html index 9b378e6e..10ab6da5 100644 --- a/docs/interfaces/_questdb_browser-client.QwpConnectionCloseInfo.html +++ b/docs/interfaces/_questdb_browser-client.QwpConnectionCloseInfo.html @@ -1,4 +1,4 @@ -QwpConnectionCloseInfo | QuestDB JavaScript Client - v5.0.0

    Interface QwpConnectionCloseInfo

    interface QwpConnectionCloseInfo {
        code: number;
        reason: string;
        wasClean: boolean;
    }
    Index

    Properties

    code +QwpConnectionCloseInfo | QuestDB JavaScript Client - v5.0.0

    Interface QwpConnectionCloseInfo

    interface QwpConnectionCloseInfo {
        code: number;
        reason: string;
        wasClean: boolean;
    }
    Index

    Properties

    Properties

    code: number
    reason: string
    wasClean: boolean
    +

    Properties

    code: number
    reason: string
    wasClean: boolean
    diff --git a/docs/interfaces/_questdb_browser-client.QwpDecimalValue.html b/docs/interfaces/_questdb_browser-client.QwpDecimalValue.html index bb704cfc..24241baa 100644 --- a/docs/interfaces/_questdb_browser-client.QwpDecimalValue.html +++ b/docs/interfaces/_questdb_browser-client.QwpDecimalValue.html @@ -1,3 +1,3 @@ -QwpDecimalValue | QuestDB JavaScript Client - v5.0.0
    interface QwpDecimalValue {
        scale: number;
        unscaled: bigint;
    }
    Index

    Properties

    scale +QwpDecimalValue | QuestDB JavaScript Client - v5.0.0
    interface QwpDecimalValue {
        scale: number;
        unscaled: bigint;
    }
    Index

    Properties

    Properties

    scale: number
    unscaled: bigint
    +

    Properties

    scale: number
    unscaled: bigint
    diff --git a/docs/interfaces/_questdb_browser-client.QwpEgressFailoverResetEvent.html b/docs/interfaces/_questdb_browser-client.QwpEgressFailoverResetEvent.html index 1a641555..221c7625 100644 --- a/docs/interfaces/_questdb_browser-client.QwpEgressFailoverResetEvent.html +++ b/docs/interfaces/_questdb_browser-client.QwpEgressFailoverResetEvent.html @@ -2,11 +2,11 @@ replacement connection. It fires on every reconnect that replays a query, whether the new connection reached another endpoint (a failed-over event) or the same one (reconnected).

    -
    interface QwpEgressFailoverResetEvent {
        cause?: unknown;
        endpoint?: string | URL;
        previousEndpoint?: string | URL;
        requestId: bigint;
        serverInfo: QwpServerInfoMessage;
    }
    Index

    Properties

    interface QwpEgressFailoverResetEvent {
        cause?: unknown;
        endpoint?: string | URL;
        previousEndpoint?: string | URL;
        requestId: bigint;
        serverInfo: QwpServerInfoMessage;
    }
    Index

    Properties

    cause?: unknown
    endpoint?: string | URL
    previousEndpoint?: string | URL
    requestId: bigint

    Client request being re-executed on the replacement connection.

    -

    Authoritative SERVER_INFO received from the replacement endpoint.

    -
    +

    Properties

    cause?: unknown
    endpoint?: string | URL
    previousEndpoint?: string | URL
    requestId: bigint

    Client request being re-executed on the replacement connection.

    +

    Authoritative SERVER_INFO received from the replacement endpoint.

    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpEgressMetrics.html b/docs/interfaces/_questdb_browser-client.QwpEgressMetrics.html index d12e7f41..99630f5c 100644 --- a/docs/interfaces/_questdb_browser-client.QwpEgressMetrics.html +++ b/docs/interfaces/_questdb_browser-client.QwpEgressMetrics.html @@ -1,4 +1,4 @@ QwpEgressMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpEgressMetrics

    Immutable notification-inbox counters for an egress session.

    -
    interface QwpEgressMetrics {
        deliveredConnectionNotifications: number;
        droppedConnectionNotifications: number;
    }
    Index

    Properties

    interface QwpEgressMetrics {
        deliveredConnectionNotifications: number;
        droppedConnectionNotifications: number;
    }
    Index

    Properties

    deliveredConnectionNotifications: number
    droppedConnectionNotifications: number
    +

    Properties

    deliveredConnectionNotifications: number
    droppedConnectionNotifications: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpEgressQueryOptions.html b/docs/interfaces/_questdb_browser-client.QwpEgressQueryOptions.html index 2112acab..635266a0 100644 --- a/docs/interfaces/_questdb_browser-client.QwpEgressQueryOptions.html +++ b/docs/interfaces/_questdb_browser-client.QwpEgressQueryOptions.html @@ -1,4 +1,4 @@ -QwpEgressQueryOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpEgressQueryOptions

    interface QwpEgressQueryOptions {
        autoCredit?: boolean;
        bindCount?: number;
        bindPayload?: Uint8Array<ArrayBufferLike>;
        binds?: QwpBindSetter;
        initialCredit?: number | bigint;
        onFailoverReset?: (
            event: QwpEgressFailoverResetEvent,
        ) => void | Promise<void>;
        resetDictionary?: boolean;
        timeoutMs?: number;
    }
    Index

    Properties

    autoCredit? +QwpEgressQueryOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpEgressQueryOptions

    interface QwpEgressQueryOptions {
        autoCredit?: boolean;
        bindCount?: number;
        bindPayload?: Uint8Array<ArrayBufferLike>;
        binds?: QwpBindSetter;
        initialCredit?: number | bigint;
        onFailoverReset?: (
            event: QwpEgressFailoverResetEvent,
        ) => void | Promise<void>;
        resetDictionary?: boolean;
        timeoutMs?: number;
    }
    Index

    Properties

    Properties

    autoCredit?: boolean

    Replenishes positive initial credit by each RESULT_BATCH wire size after the async iterator advances past that batch. Defaults to true.

    -
    bindCount?: number

    Advanced escape hatch for an already encoded bind section.

    -
    bindPayload?: Uint8Array<ArrayBufferLike>

    Advanced escape hatch for an already encoded bind section.

    -

    Sets typed positional parameters; index 0 maps to SQL placeholder $1.

    -
    initialCredit?: number | bigint

    Overrides session send-ahead credit. Zero explicitly disables flow control.

    -
    onFailoverReset?: (event: QwpEgressFailoverResetEvent) => void | Promise<void>

    Notification before this query is replayed after failover. Use it to clear +

    bindCount?: number

    Advanced escape hatch for an already encoded bind section.

    +
    bindPayload?: Uint8Array<ArrayBufferLike>

    Advanced escape hatch for an already encoded bind section.

    +

    Sets typed positional parameters; index 0 maps to SQL placeholder $1.

    +
    initialCredit?: number | bigint

    Overrides session send-ahead credit. Zero explicitly disables flow control.

    +
    onFailoverReset?: (event: QwpEgressFailoverResetEvent) => void | Promise<void>

    Notification before this query is replayed after failover. Use it to clear results already consumed from the old connection. Overrides the session's onFailoverReset for this query; the callback is awaited before replay. The query's timeout keeps running meanwhile, and a query whose timeout expires first is not replayed.

    -
    resetDictionary?: boolean

    Ask a capable server to reset its connection-scoped symbol dictionary. +

    resetDictionary?: boolean

    Ask a capable server to reset its connection-scoped symbol dictionary. Silently omitted when the server lacks QUERY_FLAGS for rolling upgrades.

    -
    timeoutMs?: number

    Per-query timeout overriding the session default; zero disables it.

    +
    timeoutMs?: number

    Per-query timeout overriding the session default; zero disables it.

    It bounds the whole query, measured from the query() call: waiting for a previous query to drain, any reconnect, server execution, and the time spent consuming results, which is not interrupted. Once it expires no @@ -32,4 +32,4 @@ connection is lost, the timeout is reported at once and the query is not replayed. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpEgressReconnectOptions.html b/docs/interfaces/_questdb_browser-client.QwpEgressReconnectOptions.html index 354bbc7a..d803733b 100644 --- a/docs/interfaces/_questdb_browser-client.QwpEgressReconnectOptions.html +++ b/docs/interfaces/_questdb_browser-client.QwpEgressReconnectOptions.html @@ -1,17 +1,17 @@ QwpEgressReconnectOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpEgressReconnectOptions

    Egress failover policy: the reconnect option of an egress session. Unlike ingress, each failover episode is bounded, so a caller waiting for a query result is not left waiting through a long outage.

    -
    interface QwpEgressReconnectOptions {
        failoverBackoffInitialMs?: number;
        failoverBackoffMaxMs?: number;
        failoverMaxAttempts?: number;
        failoverMaxDurationMs?: number;
        onEvent?: (event: QwpReconnectEvent) => void;
    }
    Index

    Properties

    interface QwpEgressReconnectOptions {
        failoverBackoffInitialMs?: number;
        failoverBackoffMaxMs?: number;
        failoverMaxAttempts?: number;
        failoverMaxDurationMs?: number;
        onEvent?: (event: QwpReconnectEvent) => void;
    }
    Index

    Properties

    failoverBackoffInitialMs?: number

    Full-jitter ceiling before the first failed connection sweep is retried. Must not exceed 2_147_483_647ms. Defaults to 50ms.

    -
    failoverBackoffMaxMs?: number

    Full-jitter exponential-backoff ceiling. Must not exceed 2_147_483_647ms. +

    failoverBackoffMaxMs?: number

    Full-jitter exponential-backoff ceiling. Must not exceed 2_147_483_647ms. Defaults to 1 second.

    -
    failoverMaxAttempts?: number

    Maximum connection sweeps per failover episode; zero is unlimited. +

    failoverMaxAttempts?: number

    Maximum connection sweeps per failover episode; zero is unlimited. Defaults to 8.

    -
    failoverMaxDurationMs?: number

    Deadline for one failover episode; zero disables it. Defaults to 30 +

    failoverMaxDurationMs?: number

    Deadline for one failover episode; zero disables it. Defaults to 30 seconds.

    -
    onEvent?: (event: QwpReconnectEvent) => void
    +
    onEvent?: (event: QwpReconnectEvent) => void
    diff --git a/docs/interfaces/_questdb_browser-client.QwpEgressViewQuery.html b/docs/interfaces/_questdb_browser-client.QwpEgressViewQuery.html index 1c6c1186..03d6d56e 100644 --- a/docs/interfaces/_questdb_browser-client.QwpEgressViewQuery.html +++ b/docs/interfaces/_questdb_browser-client.QwpEgressViewQuery.html @@ -1,9 +1,9 @@ QwpEgressViewQuery | QuestDB JavaScript Client - v5.0.0

    Interface QwpEgressViewQuery

    Control handle returned by queryViews().

    -
    interface QwpEgressViewQuery {
        completion: Promise<QwpQueryCompletion>;
        requestId: bigint;
        awaitCompletion(timeoutMs: number): Promise<boolean>;
        cancel(): Promise<void>;
        grantCredit(additionalBytes: number | bigint): Promise<void>;
        isDone(): boolean;
    }
    Index

    Properties

    interface QwpEgressViewQuery {
        completion: Promise<QwpQueryCompletion>;
        requestId: bigint;
        awaitCompletion(timeoutMs: number): Promise<boolean>;
        cancel(): Promise<void>;
        grantCredit(additionalBytes: number | bigint): Promise<void>;
        isDone(): boolean;
    }
    Index

    Properties

    completion: Promise<QwpQueryCompletion>
    requestId: bigint

    Methods

    +

    Properties

    completion: Promise<QwpQueryCompletion>
    requestId: bigint

    Methods

    diff --git a/docs/interfaces/_questdb_browser-client.QwpEncodedBinds.html b/docs/interfaces/_questdb_browser-client.QwpEncodedBinds.html index 33f831fe..742973fc 100644 --- a/docs/interfaces/_questdb_browser-client.QwpEncodedBinds.html +++ b/docs/interfaces/_questdb_browser-client.QwpEncodedBinds.html @@ -1,3 +1,3 @@ -QwpEncodedBinds | QuestDB JavaScript Client - v5.0.0
    interface QwpEncodedBinds {
        count: number;
        payload: Uint8Array;
    }
    Index

    Properties

    count +QwpEncodedBinds | QuestDB JavaScript Client - v5.0.0
    interface QwpEncodedBinds {
        count: number;
        payload: Uint8Array;
    }
    Index

    Properties

    Properties

    count: number
    payload: Uint8Array
    +

    Properties

    count: number
    payload: Uint8Array
    diff --git a/docs/interfaces/_questdb_browser-client.QwpExecDoneMessage.html b/docs/interfaces/_questdb_browser-client.QwpExecDoneMessage.html index 9a041559..823e1a52 100644 --- a/docs/interfaces/_questdb_browser-client.QwpExecDoneMessage.html +++ b/docs/interfaces/_questdb_browser-client.QwpExecDoneMessage.html @@ -1,4 +1,4 @@ -QwpExecDoneMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpExecDoneMessage

    interface QwpExecDoneMessage {
        flags: number;
        kind: "exec-done";
        operationType: number;
        payloadLength: number;
        requestId: bigint;
        rowsAffected: bigint;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags +QwpExecDoneMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpExecDoneMessage

    interface QwpExecDoneMessage {
        flags: number;
        kind: "exec-done";
        operationType: number;
        payloadLength: number;
        requestId: bigint;
        rowsAffected: bigint;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags: number
    kind: "exec-done"
    operationType: number
    payloadLength: number
    requestId: bigint
    rowsAffected: bigint
    tableCount: number
    version: number
    +

    Properties

    flags: number
    kind: "exec-done"
    operationType: number
    payloadLength: number
    requestId: bigint
    rowsAffected: bigint
    tableCount: number
    version: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpFailoverAttempt.html b/docs/interfaces/_questdb_browser-client.QwpFailoverAttempt.html index c8b69cb0..b79e7d70 100644 --- a/docs/interfaces/_questdb_browser-client.QwpFailoverAttempt.html +++ b/docs/interfaces/_questdb_browser-client.QwpFailoverAttempt.html @@ -1,3 +1,3 @@ -QwpFailoverAttempt | QuestDB JavaScript Client - v5.0.0

    Interface QwpFailoverAttempt

    interface QwpFailoverAttempt {
        endpoint: string | URL;
        error: unknown;
    }
    Index

    Properties

    endpoint +QwpFailoverAttempt | QuestDB JavaScript Client - v5.0.0

    Interface QwpFailoverAttempt

    interface QwpFailoverAttempt {
        endpoint: string | URL;
        error: unknown;
    }
    Index

    Properties

    Properties

    endpoint: string | URL
    error: unknown
    +

    Properties

    endpoint: string | URL
    error: unknown
    diff --git a/docs/interfaces/_questdb_browser-client.QwpFrame.html b/docs/interfaces/_questdb_browser-client.QwpFrame.html index d49c4442..0d2236a3 100644 --- a/docs/interfaces/_questdb_browser-client.QwpFrame.html +++ b/docs/interfaces/_questdb_browser-client.QwpFrame.html @@ -1,6 +1,6 @@ -QwpFrame | QuestDB JavaScript Client - v5.0.0
    interface QwpFrame {
        flags: number;
        payload: Uint8Array;
        payloadLength: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags +QwpFrame | QuestDB JavaScript Client - v5.0.0
    interface QwpFrame {
        flags: number;
        payload: Uint8Array;
        payloadLength: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags: number
    payload: Uint8Array
    payloadLength: number
    tableCount: number
    version: number
    +

    Properties

    flags: number
    payload: Uint8Array
    payloadLength: number
    tableCount: number
    version: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpFrameHeader.html b/docs/interfaces/_questdb_browser-client.QwpFrameHeader.html index 5a96c5e8..cc532fdd 100644 --- a/docs/interfaces/_questdb_browser-client.QwpFrameHeader.html +++ b/docs/interfaces/_questdb_browser-client.QwpFrameHeader.html @@ -1,5 +1,5 @@ -QwpFrameHeader | QuestDB JavaScript Client - v5.0.0
    interface QwpFrameHeader {
        flags: number;
        payloadLength: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags +QwpFrameHeader | QuestDB JavaScript Client - v5.0.0
    interface QwpFrameHeader {
        flags: number;
        payloadLength: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags: number
    payloadLength: number
    tableCount: number
    version: number
    +

    Properties

    flags: number
    payloadLength: number
    tableCount: number
    version: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpGeohashValue.html b/docs/interfaces/_questdb_browser-client.QwpGeohashValue.html index ed4bb272..04d250bb 100644 --- a/docs/interfaces/_questdb_browser-client.QwpGeohashValue.html +++ b/docs/interfaces/_questdb_browser-client.QwpGeohashValue.html @@ -1,3 +1,3 @@ -QwpGeohashValue | QuestDB JavaScript Client - v5.0.0
    interface QwpGeohashValue {
        bits: bigint;
        precisionBits: number;
    }
    Index

    Properties

    bits +QwpGeohashValue | QuestDB JavaScript Client - v5.0.0
    interface QwpGeohashValue {
        bits: bigint;
        precisionBits: number;
    }
    Index

    Properties

    Properties

    bits: bigint
    precisionBits: number
    +

    Properties

    bits: bigint
    precisionBits: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpHandshakeMetadata.html b/docs/interfaces/_questdb_browser-client.QwpHandshakeMetadata.html index 83a76d65..9540288b 100644 --- a/docs/interfaces/_questdb_browser-client.QwpHandshakeMetadata.html +++ b/docs/interfaces/_questdb_browser-client.QwpHandshakeMetadata.html @@ -1,5 +1,5 @@ QwpHandshakeMetadata | QuestDB JavaScript Client - v5.0.0

    Interface QwpHandshakeMetadata

    Metadata negotiated during the QWP WebSocket upgrade.

    -
    interface QwpHandshakeMetadata {
        contentEncoding?: string;
        durableAckEnabled?: boolean;
        maxBatchSizeBytes?: number;
        negotiatedCompression?: QwpNegotiatedEgressCompression;
        qwpVersion: number;
        serverRole?: string;
        serverZone?: string;
    }
    Index

    Properties

    interface QwpHandshakeMetadata {
        contentEncoding?: string;
        durableAckEnabled?: boolean;
        maxBatchSizeBytes?: number;
        negotiatedCompression?: QwpNegotiatedEgressCompression;
        qwpVersion: number;
        serverRole?: string;
        serverZone?: string;
    }
    Index

    Properties

    contentEncoding?: string

    Server-selected egress content encoding, when advertised.

    -
    durableAckEnabled?: boolean

    Whether the server confirmed durable-ACK support.

    -
    maxBatchSizeBytes?: number

    Server's hard ingress WebSocket-payload cap, when advertised.

    -
    negotiatedCompression?: QwpNegotiatedEgressCompression

    Parsed effective egress codec and level selected by the server.

    -
    qwpVersion: number

    QWP protocol version selected by the server.

    -
    serverRole?: string

    Server role advertised on a successful upgrade, when available.

    -
    serverZone?: string

    Server zone advertised on a successful upgrade, when available.

    -
    +
    durableAckEnabled?: boolean

    Whether the server confirmed durable-ACK support.

    +
    maxBatchSizeBytes?: number

    Server's hard ingress WebSocket-payload cap, when advertised.

    +
    negotiatedCompression?: QwpNegotiatedEgressCompression

    Parsed effective egress codec and level selected by the server.

    +
    qwpVersion: number

    QWP protocol version selected by the server.

    +
    serverRole?: string

    Server role advertised on a successful upgrade, when available.

    +
    serverZone?: string

    Server zone advertised on a successful upgrade, when available.

    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpIngressEncodeOptions.html b/docs/interfaces/_questdb_browser-client.QwpIngressEncodeOptions.html index 33898b26..dd8d8861 100644 --- a/docs/interfaces/_questdb_browser-client.QwpIngressEncodeOptions.html +++ b/docs/interfaces/_questdb_browser-client.QwpIngressEncodeOptions.html @@ -1,7 +1,7 @@ -QwpIngressEncodeOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressEncodeOptions

    interface QwpIngressEncodeOptions {
        confirmedMaxSymbolId?: number;
        deferCommit?: boolean;
        dictionary?: QwpSymbolDictionary;
        gorilla?: boolean;
    }
    Index

    Properties

    confirmedMaxSymbolId? +QwpIngressEncodeOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressEncodeOptions

    interface QwpIngressEncodeOptions {
        confirmedMaxSymbolId?: number;
        deferCommit?: boolean;
        dictionary?: QwpSymbolDictionary;
        gorilla?: boolean;
    }
    Index

    Properties

    confirmedMaxSymbolId?: number

    Highest global symbol ID already published on this logical connection.

    -
    deferCommit?: boolean
    dictionary?: QwpSymbolDictionary

    Present means connection-scoped delta dictionary mode.

    -
    gorilla?: boolean
    +
    deferCommit?: boolean
    dictionary?: QwpSymbolDictionary

    Present means connection-scoped delta dictionary mode.

    +
    gorilla?: boolean
    diff --git a/docs/interfaces/_questdb_browser-client.QwpIngressErrorEvent.html b/docs/interfaces/_questdb_browser-client.QwpIngressErrorEvent.html index 883360ca..4dbe3be6 100644 --- a/docs/interfaces/_questdb_browser-client.QwpIngressErrorEvent.html +++ b/docs/interfaces/_questdb_browser-client.QwpIngressErrorEvent.html @@ -1,8 +1,8 @@ -QwpIngressErrorEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressErrorEvent

    interface QwpIngressErrorEvent {
        error: Error;
        metrics: QwpIngressMetrics;
        response?: QwpIngressResponse;
        senderError?: QwpSenderError;
        terminal: boolean;
        timestampMs: number;
    }
    Index

    Properties

    error +QwpIngressErrorEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressErrorEvent

    interface QwpIngressErrorEvent {
        error: Error;
        metrics: QwpIngressMetrics;
        response?: QwpIngressResponse;
        senderError?: QwpSenderError;
        terminal: boolean;
        timestampMs: number;
    }
    Index

    Properties

    error: Error
    senderError?: QwpSenderError

    Present for a classified server rejection.

    -
    terminal: boolean
    timestampMs: number
    +

    Properties

    error: Error
    senderError?: QwpSenderError

    Present for a classified server rejection.

    +
    terminal: boolean
    timestampMs: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpIngressMetrics.html b/docs/interfaces/_questdb_browser-client.QwpIngressMetrics.html index 15a8cb02..681245ae 100644 --- a/docs/interfaces/_questdb_browser-client.QwpIngressMetrics.html +++ b/docs/interfaces/_questdb_browser-client.QwpIngressMetrics.html @@ -1,5 +1,5 @@ QwpIngressMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressMetrics

    Immutable point-in-time ingress telemetry, safe in browsers and Node.js.

    -
    interface QwpIngressMetrics {
        ackedSequence: bigint;
        deliveredConnectionNotifications: number;
        deliveredErrorNotifications: number;
        deliveredProgressNotifications: number;
        droppedConnectionNotifications: number;
        droppedErrorNotifications: number;
        droppedProgressNotifications: number;
        lastError?: Error;
        memoryReplayMaxBytes?: number;
        memoryReplayUsedBytes?: number;
        pendingDurableTables: number;
        pendingReplayBytes: number;
        pendingReplayFrames: number;
        publishedSequence: bigint;
        replayAcknowledgedFrameSequence?: bigint;
        replayPublishedFrameSequence?: bigint;
        totalAcks: number;
        totalBytesPublished: number;
        totalBytesReplayed: number;
        totalBytesSent: number;
        totalDurableAcks: number;
        totalErrors: number;
        totalFailovers: number;
        totalFramesPublished: number;
        totalFramesReplayed: number;
        totalFramesSent: number;
        totalMemoryReplayAppendTimeouts: number;
        totalMemoryReplayBackpressureStalls: number;
        totalNacks: number;
        totalReconnectAttempts: number;
        totalReconnectErrors: number;
        totalReconnectsSucceeded: number;
        waitingMemoryReplayAppends: number;
    }
    Index

    Properties

    interface QwpIngressMetrics {
        ackedSequence: bigint;
        deliveredConnectionNotifications: number;
        deliveredErrorNotifications: number;
        deliveredProgressNotifications: number;
        droppedConnectionNotifications: number;
        droppedErrorNotifications: number;
        droppedProgressNotifications: number;
        lastError?: Error;
        memoryReplayMaxBytes?: number;
        memoryReplayUsedBytes?: number;
        pendingDurableTables: number;
        pendingReplayBytes: number;
        pendingReplayFrames: number;
        publishedSequence: bigint;
        replayAcknowledgedFrameSequence?: bigint;
        replayPublishedFrameSequence?: bigint;
        totalAcks: number;
        totalBytesPublished: number;
        totalBytesReplayed: number;
        totalBytesSent: number;
        totalDurableAcks: number;
        totalErrors: number;
        totalFailovers: number;
        totalFramesPublished: number;
        totalFramesReplayed: number;
        totalFramesSent: number;
        totalMemoryReplayAppendTimeouts: number;
        totalMemoryReplayBackpressureStalls: number;
        totalNacks: number;
        totalReconnectAttempts: number;
        totalReconnectErrors: number;
        totalReconnectsSucceeded: number;
        waitingMemoryReplayAppends: number;
    }
    Index

    Properties

    ackedSequence: bigint

    Highest client-session sequence covered by a successful cumulative ACK.

    -
    deliveredConnectionNotifications: number
    deliveredErrorNotifications: number
    deliveredProgressNotifications: number
    droppedConnectionNotifications: number
    droppedErrorNotifications: number
    droppedProgressNotifications: number
    lastError?: Error
    memoryReplayMaxBytes?: number
    memoryReplayUsedBytes?: number
    pendingDurableTables: number
    pendingReplayBytes: number
    pendingReplayFrames: number
    publishedSequence: bigint

    Highest client-session sequence allocated, or -1 before the first send.

    -
    replayAcknowledgedFrameSequence?: bigint

    Trim watermark; in durable-ACK mode it advances only after durability.

    -
    replayPublishedFrameSequence?: bigint

    Stable store-and-forward watermark; absent without reconnect/replay.

    -
    totalAcks: number
    totalBytesPublished: number
    totalBytesReplayed: number
    totalBytesSent: number
    totalDurableAcks: number
    totalErrors: number
    totalFailovers: number
    totalFramesPublished: number
    totalFramesReplayed: number
    totalFramesSent: number

    Physical sends; includes replay and dictionary catch-up when available.

    -
    totalMemoryReplayAppendTimeouts: number
    totalMemoryReplayBackpressureStalls: number
    totalNacks: number
    totalReconnectAttempts: number
    totalReconnectErrors: number
    totalReconnectsSucceeded: number
    waitingMemoryReplayAppends: number
    +
    deliveredConnectionNotifications: number
    deliveredErrorNotifications: number
    deliveredProgressNotifications: number
    droppedConnectionNotifications: number
    droppedErrorNotifications: number
    droppedProgressNotifications: number
    lastError?: Error
    memoryReplayMaxBytes?: number
    memoryReplayUsedBytes?: number
    pendingDurableTables: number
    pendingReplayBytes: number
    pendingReplayFrames: number
    publishedSequence: bigint

    Highest client-session sequence allocated, or -1 before the first send.

    +
    replayAcknowledgedFrameSequence?: bigint

    Trim watermark; in durable-ACK mode it advances only after durability.

    +
    replayPublishedFrameSequence?: bigint

    Stable store-and-forward watermark; absent without reconnect/replay.

    +
    totalAcks: number
    totalBytesPublished: number
    totalBytesReplayed: number
    totalBytesSent: number
    totalDurableAcks: number
    totalErrors: number
    totalFailovers: number
    totalFramesPublished: number
    totalFramesReplayed: number
    totalFramesSent: number

    Physical sends; includes replay and dictionary catch-up when available.

    +
    totalMemoryReplayAppendTimeouts: number
    totalMemoryReplayBackpressureStalls: number
    totalNacks: number
    totalReconnectAttempts: number
    totalReconnectErrors: number
    totalReconnectsSucceeded: number
    waitingMemoryReplayAppends: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpIngressProgressEvent.html b/docs/interfaces/_questdb_browser-client.QwpIngressProgressEvent.html index ce396628..943ca67b 100644 --- a/docs/interfaces/_questdb_browser-client.QwpIngressProgressEvent.html +++ b/docs/interfaces/_questdb_browser-client.QwpIngressProgressEvent.html @@ -1,6 +1,6 @@ -QwpIngressProgressEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressProgressEvent

    interface QwpIngressProgressEvent {
        kind: QwpIngressProgressKind;
        metrics: QwpIngressMetrics;
        response?: QwpIngressResponse;
        sequence?: bigint;
        timestampMs: number;
    }
    Index

    Properties

    kind +QwpIngressProgressEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressProgressEvent

    interface QwpIngressProgressEvent {
        kind: QwpIngressProgressKind;
        metrics: QwpIngressMetrics;
        response?: QwpIngressResponse;
        sequence?: bigint;
        timestampMs: number;
    }
    Index

    Properties

    sequence?: bigint
    timestampMs: number
    +

    Properties

    sequence?: bigint
    timestampMs: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpIngressReconnectOptions.html b/docs/interfaces/_questdb_browser-client.QwpIngressReconnectOptions.html index aa89f94b..91e9bd7a 100644 --- a/docs/interfaces/_questdb_browser-client.QwpIngressReconnectOptions.html +++ b/docs/interfaces/_questdb_browser-client.QwpIngressReconnectOptions.html @@ -4,7 +4,7 @@ not stopped by any configured limit. Transport and endpoint failures are retried until close(), and only a terminal error ends the session. reconnectMaxDurationMs bounds a synchronous initial connect only.

    -
    interface QwpIngressReconnectOptions {
        maxFrameRejections?: number;
        onEvent?: (event: QwpReconnectEvent) => void;
        poisonMinEscalationWindowMs?: number;
        reconnectInitialBackoffMs?: number;
        reconnectMaxBackoffMs?: number;
        reconnectMaxDurationMs?: number;
    }
    Index

    Properties

    interface QwpIngressReconnectOptions {
        maxFrameRejections?: number;
        onEvent?: (event: QwpReconnectEvent) => void;
        poisonMinEscalationWindowMs?: number;
        reconnectInitialBackoffMs?: number;
        reconnectMaxBackoffMs?: number;
        reconnectMaxDurationMs?: number;
    }
    Index

    Properties

    maxFrameRejections?: number

    Consecutive retriable rejections of one frame before it is treated as poison and retained for inspection. Defaults to 4.

    -
    onEvent?: (event: QwpReconnectEvent) => void
    poisonMinEscalationWindowMs?: number

    Minimum time the same frame must remain suspect before repeated +

    onEvent?: (event: QwpReconnectEvent) => void
    poisonMinEscalationWindowMs?: number

    Minimum time the same frame must remain suspect before repeated rejections or non-orderly closes become terminal. Defaults to 5 seconds; zero escalates as soon as maxFrameRejections is reached.

    -
    reconnectInitialBackoffMs?: number

    Full-jitter ceiling before the first failed connection sweep is retried. +

    reconnectInitialBackoffMs?: number

    Full-jitter ceiling before the first failed connection sweep is retried. Must not exceed 2_147_483_647ms. Defaults to 100ms.

    -
    reconnectMaxBackoffMs?: number

    Full-jitter exponential-backoff ceiling. Must not exceed 2_147_483_647ms. +

    reconnectMaxBackoffMs?: number

    Full-jitter exponential-backoff ceiling. Must not exceed 2_147_483_647ms. Defaults to 5 seconds.

    -
    reconnectMaxDurationMs?: number

    How long a synchronous initial connect keeps retrying before it fails +

    reconnectMaxDurationMs?: number

    How long a synchronous initial connect keeps retrying before it fails with QwpReconnectExhaustedError. Defaults to 5 minutes. Zero allows one attempt and no retries, as in the Rust and Python clients; the attempt itself is not cut short. Reconnects after the first connection do not @@ -27,4 +27,4 @@ background (initialConnectMode "async", which Node's initial_connect_retry=async and the pooled client's lazy_connect also select): both retry until close() or a terminal error.

    -
    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpIngressResponse.html b/docs/interfaces/_questdb_browser-client.QwpIngressResponse.html index d3b8877f..c00ccb4d 100644 --- a/docs/interfaces/_questdb_browser-client.QwpIngressResponse.html +++ b/docs/interfaces/_questdb_browser-client.QwpIngressResponse.html @@ -1,5 +1,5 @@ -QwpIngressResponse | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressResponse

    interface QwpIngressResponse {
        errorMessage?: string;
        sequence: null | bigint;
        status: number;
        tables: QwpIngressTableResult[];
    }
    Index

    Properties

    errorMessage? +QwpIngressResponse | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressResponse

    interface QwpIngressResponse {
        errorMessage?: string;
        sequence: null | bigint;
        status: number;
        tables: QwpIngressTableResult[];
    }
    Index

    Properties

    errorMessage?: string
    sequence: null | bigint
    status: number
    +

    Properties

    errorMessage?: string
    sequence: null | bigint
    status: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpIngressServerInfo.html b/docs/interfaces/_questdb_browser-client.QwpIngressServerInfo.html index 1305f51f..90566ce4 100644 --- a/docs/interfaces/_questdb_browser-client.QwpIngressServerInfo.html +++ b/docs/interfaces/_questdb_browser-client.QwpIngressServerInfo.html @@ -1,8 +1,8 @@ QwpIngressServerInfo | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressServerInfo

    What the browser-requested ingress SERVER_INFO frame reports.

    -
    interface QwpIngressServerInfo {
        durableAckEnabled: boolean;
        maxBatchSizeBytes: number;
    }
    Index

    Properties

    interface QwpIngressServerInfo {
        durableAckEnabled: boolean;
        maxBatchSizeBytes: number;
    }
    Index

    Properties

    durableAckEnabled: boolean

    Whether this connection negotiated durable acknowledgements. This is the only durable-ACK verdict a browser can read: the confirmation header is invisible to page JavaScript and the subprotocol echo confirms the negotiation dialect, not the capability.

    -
    maxBatchSizeBytes: number
    +
    maxBatchSizeBytes: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpIngressSymbolDictionaryDelta.html b/docs/interfaces/_questdb_browser-client.QwpIngressSymbolDictionaryDelta.html index 2c2bbf28..181afde3 100644 --- a/docs/interfaces/_questdb_browser-client.QwpIngressSymbolDictionaryDelta.html +++ b/docs/interfaces/_questdb_browser-client.QwpIngressSymbolDictionaryDelta.html @@ -1,3 +1,3 @@ -QwpIngressSymbolDictionaryDelta | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressSymbolDictionaryDelta

    interface QwpIngressSymbolDictionaryDelta {
        entries: readonly string[];
        startId: number;
    }
    Index

    Properties

    entries +QwpIngressSymbolDictionaryDelta | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressSymbolDictionaryDelta

    interface QwpIngressSymbolDictionaryDelta {
        entries: readonly string[];
        startId: number;
    }
    Index

    Properties

    Properties

    entries: readonly string[]
    startId: number
    +

    Properties

    entries: readonly string[]
    startId: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpIngressTableResult.html b/docs/interfaces/_questdb_browser-client.QwpIngressTableResult.html index 9ef85316..2ead1a21 100644 --- a/docs/interfaces/_questdb_browser-client.QwpIngressTableResult.html +++ b/docs/interfaces/_questdb_browser-client.QwpIngressTableResult.html @@ -1,3 +1,3 @@ -QwpIngressTableResult | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressTableResult

    interface QwpIngressTableResult {
        name: string;
        sequenceTransaction: bigint;
    }
    Index

    Properties

    name +QwpIngressTableResult | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressTableResult

    interface QwpIngressTableResult {
        name: string;
        sequenceTransaction: bigint;
    }
    Index

    Properties

    name: string
    sequenceTransaction: bigint
    +

    Properties

    name: string
    sequenceTransaction: bigint
    diff --git a/docs/interfaces/_questdb_browser-client.QwpLong256Value.html b/docs/interfaces/_questdb_browser-client.QwpLong256Value.html index 50bcb844..483adc27 100644 --- a/docs/interfaces/_questdb_browser-client.QwpLong256Value.html +++ b/docs/interfaces/_questdb_browser-client.QwpLong256Value.html @@ -1,3 +1,3 @@ -QwpLong256Value | QuestDB JavaScript Client - v5.0.0
    interface QwpLong256Value {
        words: readonly [bigint, bigint, bigint, bigint];
    }
    Index

    Properties

    words +QwpLong256Value | QuestDB JavaScript Client - v5.0.0
    interface QwpLong256Value {
        words: readonly [bigint, bigint, bigint, bigint];
    }
    Index

    Properties

    Properties

    words: readonly [bigint, bigint, bigint, bigint]

    Little-endian 64-bit words; word 0 is least significant.

    -
    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpPoolSlotReservation.html b/docs/interfaces/_questdb_browser-client.QwpPoolSlotReservation.html index 70629043..b0acb4a7 100644 --- a/docs/interfaces/_questdb_browser-client.QwpPoolSlotReservation.html +++ b/docs/interfaces/_questdb_browser-client.QwpPoolSlotReservation.html @@ -1,5 +1,5 @@ QwpPoolSlotReservation | QuestDB JavaScript Client - v5.0.0

    Interface QwpPoolSlotReservationInternal

    Cross-owner reservation for stable pooled sender slot indexes.

    -
    interface QwpPoolSlotReservation {
        onAvailable(listener: () => void): () => void;
        release(slot: number): void;
        tryReserve(slot: number): boolean;
    }
    Index

    Methods

    interface QwpPoolSlotReservation {
        onAvailable(listener: () => void): () => void;
        release(slot: number): void;
        tryReserve(slot: number): boolean;
    }
    Index

    Methods

    +

    Methods

    diff --git a/docs/interfaces/_questdb_browser-client.QwpQueryErrorMessage.html b/docs/interfaces/_questdb_browser-client.QwpQueryErrorMessage.html index 418a4ad4..55bb50e5 100644 --- a/docs/interfaces/_questdb_browser-client.QwpQueryErrorMessage.html +++ b/docs/interfaces/_questdb_browser-client.QwpQueryErrorMessage.html @@ -1,4 +1,4 @@ -QwpQueryErrorMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpQueryErrorMessage

    interface QwpQueryErrorMessage {
        flags: number;
        kind: "query-error";
        message: string;
        payloadLength: number;
        requestId: bigint;
        status: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags +QwpQueryErrorMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpQueryErrorMessage

    interface QwpQueryErrorMessage {
        flags: number;
        kind: "query-error";
        message: string;
        payloadLength: number;
        requestId: bigint;
        status: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags: number
    kind: "query-error"
    message: string
    payloadLength: number
    requestId: bigint
    status: number
    tableCount: number
    version: number
    +

    Properties

    flags: number
    kind: "query-error"
    message: string
    payloadLength: number
    requestId: bigint
    status: number
    tableCount: number
    version: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpQueryRequest.html b/docs/interfaces/_questdb_browser-client.QwpQueryRequest.html index 681f4b24..3c83a685 100644 --- a/docs/interfaces/_questdb_browser-client.QwpQueryRequest.html +++ b/docs/interfaces/_questdb_browser-client.QwpQueryRequest.html @@ -1,4 +1,4 @@ -QwpQueryRequest | QuestDB JavaScript Client - v5.0.0
    interface QwpQueryRequest {
        bindCount?: number;
        bindPayload?: Uint8Array<ArrayBufferLike>;
        binds?: QwpBindSetter;
        initialCredit?: number | bigint;
        queryFlags?: number | bigint;
        requestId: number | bigint;
        sql: string;
    }
    Index

    Properties

    bindCount? +QwpQueryRequest | QuestDB JavaScript Client - v5.0.0
    interface QwpQueryRequest {
        bindCount?: number;
        bindPayload?: Uint8Array<ArrayBufferLike>;
        binds?: QwpBindSetter;
        initialCredit?: number | bigint;
        queryFlags?: number | bigint;
        requestId: number | bigint;
        sql: string;
    }
    Index

    Properties

    bindCount?: number

    Advanced escape hatch for an already encoded bind section.

    -
    bindPayload?: Uint8Array<ArrayBufferLike>

    Advanced escape hatch for an already encoded bind section.

    -

    Browser-safe typed positional binds.

    -
    initialCredit?: number | bigint

    Zero means unbounded.

    -
    queryFlags?: number | bigint

    Append only after SERVER_INFO advertises QUERY_FLAGS.

    -
    requestId: number | bigint
    sql: string
    +
    bindPayload?: Uint8Array<ArrayBufferLike>

    Advanced escape hatch for an already encoded bind section.

    +

    Browser-safe typed positional binds.

    +
    initialCredit?: number | bigint

    Zero means unbounded.

    +
    queryFlags?: number | bigint

    Append only after SERVER_INFO advertises QUERY_FLAGS.

    +
    requestId: number | bigint
    sql: string
    diff --git a/docs/interfaces/_questdb_browser-client.QwpReconnectEvent.html b/docs/interfaces/_questdb_browser-client.QwpReconnectEvent.html index 8fea33a0..de7c6fc1 100644 --- a/docs/interfaces/_questdb_browser-client.QwpReconnectEvent.html +++ b/docs/interfaces/_questdb_browser-client.QwpReconnectEvent.html @@ -1,4 +1,4 @@ -QwpReconnectEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpReconnectEvent

    interface QwpReconnectEvent {
        attempt: number;
        cause?: unknown;
        endpoint?: string | URL;
        episodeMs?: number;
        kind: QwpReconnectEventKind;
        previousEndpoint?: string | URL;
        timestampMs: number;
    }
    Index

    Properties

    attempt +QwpReconnectEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpReconnectEvent

    interface QwpReconnectEvent {
        attempt: number;
        cause?: unknown;
        endpoint?: string | URL;
        episodeMs?: number;
        kind: QwpReconnectEventKind;
        previousEndpoint?: string | URL;
        timestampMs: number;
    }
    Index

    Properties

    attempt: number

    One-based reconnect sweep number; zero for lifecycle-only events.

    -
    cause?: unknown
    endpoint?: string | URL

    The endpoint the event concerns; for all-endpoints-unreachable, the last +

    cause?: unknown
    endpoint?: string | URL

    The endpoint the event concerns; for all-endpoints-unreachable, the last endpoint the sweep tried.

    -
    episodeMs?: number

    Elapsed time in the current consecutive capability-gap episode.

    -
    previousEndpoint?: string | URL
    timestampMs: number
    +
    episodeMs?: number

    Elapsed time in the current consecutive capability-gap episode.

    +
    previousEndpoint?: string | URL
    timestampMs: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpResourcePoolMetrics.html b/docs/interfaces/_questdb_browser-client.QwpResourcePoolMetrics.html index 1cf5196d..df024e03 100644 --- a/docs/interfaces/_questdb_browser-client.QwpResourcePoolMetrics.html +++ b/docs/interfaces/_questdb_browser-client.QwpResourcePoolMetrics.html @@ -1,8 +1,8 @@ -QwpResourcePoolMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpResourcePoolMetrics

    interface QwpResourcePoolMetrics {
        available: number;
        creating: number;
        leased: number;
        maximum: number;
        minimum: number;
        total: number;
        waiting: number;
    }
    Index

    Properties

    available +QwpResourcePoolMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpResourcePoolMetrics

    interface QwpResourcePoolMetrics {
        available: number;
        creating: number;
        leased: number;
        maximum: number;
        minimum: number;
        total: number;
        waiting: number;
    }
    Index

    Properties

    available: number
    creating: number
    leased: number
    maximum: number
    minimum: number
    total: number
    waiting: number
    +

    Properties

    available: number
    creating: number
    leased: number
    maximum: number
    minimum: number
    total: number
    waiting: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpResultArrayValue.html b/docs/interfaces/_questdb_browser-client.QwpResultArrayValue.html index 1c113466..8e6f8f2c 100644 --- a/docs/interfaces/_questdb_browser-client.QwpResultArrayValue.html +++ b/docs/interfaces/_questdb_browser-client.QwpResultArrayValue.html @@ -1,3 +1,3 @@ -QwpResultArrayValue | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultArrayValue

    interface QwpResultArrayValue {
        dimensions: readonly number[];
        values: readonly number[] | readonly bigint[];
    }
    Index

    Properties

    dimensions +QwpResultArrayValue | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultArrayValue

    interface QwpResultArrayValue {
        dimensions: readonly number[];
        values: readonly number[] | readonly bigint[];
    }
    Index

    Properties

    Properties

    dimensions: readonly number[]
    values: readonly number[] | readonly bigint[]
    +

    Properties

    dimensions: readonly number[]
    values: readonly number[] | readonly bigint[]
    diff --git a/docs/interfaces/_questdb_browser-client.QwpResultBatchMessage.html b/docs/interfaces/_questdb_browser-client.QwpResultBatchMessage.html index f9cbfa14..f3d79b6a 100644 --- a/docs/interfaces/_questdb_browser-client.QwpResultBatchMessage.html +++ b/docs/interfaces/_questdb_browser-client.QwpResultBatchMessage.html @@ -1,4 +1,4 @@ -QwpResultBatchMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultBatchMessage

    interface QwpResultBatchMessage {
        batchSequence: bigint;
        body: Uint8Array;
        flags: number;
        kind: "result-batch";
        payloadLength: number;
        requestId: bigint;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    batchSequence +QwpResultBatchMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultBatchMessage

    interface QwpResultBatchMessage {
        batchSequence: bigint;
        body: Uint8Array;
        flags: number;
        kind: "result-batch";
        payloadLength: number;
        requestId: bigint;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    batchSequence: bigint
    body: Uint8Array

    Raw or Zstd-compressed delta dictionary and columnar table block; decoded +

    Properties

    batchSequence: bigint
    body: Uint8Array

    Raw or Zstd-compressed delta dictionary and columnar table block; decoded by the batch decoder according to the frame flags.

    -
    flags: number
    kind: "result-batch"
    payloadLength: number
    requestId: bigint
    tableCount: number
    version: number
    +
    flags: number
    kind: "result-batch"
    payloadLength: number
    requestId: bigint
    tableCount: number
    version: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpResultColumn.html b/docs/interfaces/_questdb_browser-client.QwpResultColumn.html index aedc2d2e..6d9dc593 100644 --- a/docs/interfaces/_questdb_browser-client.QwpResultColumn.html +++ b/docs/interfaces/_questdb_browser-client.QwpResultColumn.html @@ -1,6 +1,6 @@ -QwpResultColumn | QuestDB JavaScript Client - v5.0.0
    interface QwpResultColumn {
        name: string;
        precisionBits?: number;
        scale?: number;
        type: QwpColumnType;
        values: readonly QwpResultValue[];
    }

    Hierarchy (View Summary)

    Index

    Properties

    name +QwpResultColumn | QuestDB JavaScript Client - v5.0.0
    interface QwpResultColumn {
        name: string;
        precisionBits?: number;
        scale?: number;
        type: QwpColumnType;
        values: readonly QwpResultValue[];
    }

    Hierarchy (View Summary)

    Index

    Properties

    name: string
    precisionBits?: number
    scale?: number
    values: readonly QwpResultValue[]
    +

    Properties

    name: string
    precisionBits?: number
    scale?: number
    values: readonly QwpResultValue[]
    diff --git a/docs/interfaces/_questdb_browser-client.QwpResultColumnSchema.html b/docs/interfaces/_questdb_browser-client.QwpResultColumnSchema.html index 8bdd5d0b..1bdc012b 100644 --- a/docs/interfaces/_questdb_browser-client.QwpResultColumnSchema.html +++ b/docs/interfaces/_questdb_browser-client.QwpResultColumnSchema.html @@ -1,3 +1,3 @@ -QwpResultColumnSchema | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultColumnSchema

    interface QwpResultColumnSchema {
        name: string;
        type: QwpColumnType;
    }

    Hierarchy (View Summary)

    Index

    Properties

    name +QwpResultColumnSchema | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultColumnSchema

    interface QwpResultColumnSchema {
        name: string;
        type: QwpColumnType;
    }

    Hierarchy (View Summary)

    Index

    Properties

    Properties

    name: string
    +

    Properties

    name: string
    diff --git a/docs/interfaces/_questdb_browser-client.QwpResultEndMessage.html b/docs/interfaces/_questdb_browser-client.QwpResultEndMessage.html index ffb1d1ef..db5235e8 100644 --- a/docs/interfaces/_questdb_browser-client.QwpResultEndMessage.html +++ b/docs/interfaces/_questdb_browser-client.QwpResultEndMessage.html @@ -1,4 +1,4 @@ -QwpResultEndMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultEndMessage

    interface QwpResultEndMessage {
        finalSequence: bigint;
        flags: number;
        kind: "result-end";
        payloadLength: number;
        requestId: bigint;
        tableCount: number;
        totalRows: bigint;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    finalSequence +QwpResultEndMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultEndMessage

    interface QwpResultEndMessage {
        finalSequence: bigint;
        flags: number;
        kind: "result-end";
        payloadLength: number;
        requestId: bigint;
        tableCount: number;
        totalRows: bigint;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    finalSequence: bigint
    flags: number
    kind: "result-end"
    payloadLength: number
    requestId: bigint
    tableCount: number
    totalRows: bigint
    version: number
    +

    Properties

    finalSequence: bigint
    flags: number
    kind: "result-end"
    payloadLength: number
    requestId: bigint
    tableCount: number
    totalRows: bigint
    version: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpRoutingOptions.html b/docs/interfaces/_questdb_browser-client.QwpRoutingOptions.html index 4abd6d51..7f3169fe 100644 --- a/docs/interfaces/_questdb_browser-client.QwpRoutingOptions.html +++ b/docs/interfaces/_questdb_browser-client.QwpRoutingOptions.html @@ -3,8 +3,8 @@ or a primary still catching up, answers the /write/v4 upgrade with 421 and the role it holds, and the endpoint sweep moves on, so a sender reaches the primary whatever role or zone it could ask for.

    -
    interface QwpRoutingOptions {
        target?: QwpTarget;
        zone?: string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    interface QwpRoutingOptions {
        target?: QwpTarget;
        zone?: string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    Properties

    target?: QwpTarget

    Selects any readable node, a primary/standalone node, or a replica.

    -
    zone?: string

    Opaque, case-insensitive preferred zone; cross-zone fallback stays enabled.

    -
    +
    zone?: string

    Opaque, case-insensitive preferred zone; cross-zone fallback stays enabled.

    +
    diff --git a/docs/interfaces/_questdb_browser-client.QwpSenderError.html b/docs/interfaces/_questdb_browser-client.QwpSenderError.html index 251850e6..1dd7a841 100644 --- a/docs/interfaces/_questdb_browser-client.QwpSenderError.html +++ b/docs/interfaces/_questdb_browser-client.QwpSenderError.html @@ -1,5 +1,5 @@ QwpSenderError | QuestDB JavaScript Client - v5.0.0

    Immutable Java-parity context for an ingress rejection or data loss.

    -
    interface QwpSenderError {
        appliedPolicy: QwpSenderErrorPolicy;
        category: QwpSenderErrorCategory;
        detectedAtMs: number;
        fromFsn?: bigint;
        messageSequence?: bigint;
        quarantinedPath?: string;
        serverMessage?: string;
        serverStatusByte?: number;
        tableName?: string;
        toFsn?: bigint;
    }
    Index

    Properties

    interface QwpSenderError {
        appliedPolicy: QwpSenderErrorPolicy;
        category: QwpSenderErrorCategory;
        detectedAtMs: number;
        fromFsn?: bigint;
        messageSequence?: bigint;
        quarantinedPath?: string;
        serverMessage?: string;
        serverStatusByte?: number;
        tableName?: string;
        toFsn?: bigint;
    }
    Index

    Properties

    appliedPolicy: QwpSenderErrorPolicy
    detectedAtMs: number
    fromFsn?: bigint

    Inclusive stable store-and-forward frame-sequence range.

    -
    messageSequence?: bigint
    quarantinedPath?: string

    Preserved on-disk bytes for a data-loss/quarantine notification.

    -
    serverMessage?: string
    serverStatusByte?: number
    tableName?: string
    toFsn?: bigint
    +

    Properties

    appliedPolicy: QwpSenderErrorPolicy
    detectedAtMs: number
    fromFsn?: bigint

    Inclusive stable store-and-forward frame-sequence range.

    +
    messageSequence?: bigint
    quarantinedPath?: string

    Preserved on-disk bytes for a data-loss/quarantine notification.

    +
    serverMessage?: string
    serverStatusByte?: number
    tableName?: string
    toFsn?: bigint
    diff --git a/docs/interfaces/_questdb_browser-client.QwpSenderErrorResponseContext.html b/docs/interfaces/_questdb_browser-client.QwpSenderErrorResponseContext.html index 86f0aea2..3d6e64e1 100644 --- a/docs/interfaces/_questdb_browser-client.QwpSenderErrorResponseContext.html +++ b/docs/interfaces/_questdb_browser-client.QwpSenderErrorResponseContext.html @@ -1,7 +1,7 @@ -QwpSenderErrorResponseContext | QuestDB JavaScript Client - v5.0.0

    Interface QwpSenderErrorResponseContext

    interface QwpSenderErrorResponseContext {
        appliedPolicy?: QwpSenderErrorPolicy;
        detectedAtMs?: number;
        fromFsn?: bigint;
        messageSequence?: bigint;
        tableName?: string;
        toFsn?: bigint;
    }
    Index

    Properties

    appliedPolicy? +QwpSenderErrorResponseContext | QuestDB JavaScript Client - v5.0.0

    Interface QwpSenderErrorResponseContext

    interface QwpSenderErrorResponseContext {
        appliedPolicy?: QwpSenderErrorPolicy;
        detectedAtMs?: number;
        fromFsn?: bigint;
        messageSequence?: bigint;
        tableName?: string;
        toFsn?: bigint;
    }
    Index

    Properties

    appliedPolicy?: QwpSenderErrorPolicy
    detectedAtMs?: number
    fromFsn?: bigint
    messageSequence?: bigint
    tableName?: string
    toFsn?: bigint
    +

    Properties

    appliedPolicy?: QwpSenderErrorPolicy
    detectedAtMs?: number
    fromFsn?: bigint
    messageSequence?: bigint
    tableName?: string
    toFsn?: bigint
    diff --git a/docs/interfaces/_questdb_browser-client.QwpSenderMetrics.html b/docs/interfaces/_questdb_browser-client.QwpSenderMetrics.html index 2f972b31..85f023ff 100644 --- a/docs/interfaces/_questdb_browser-client.QwpSenderMetrics.html +++ b/docs/interfaces/_questdb_browser-client.QwpSenderMetrics.html @@ -1,5 +1,5 @@ QwpSenderMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpSenderMetrics

    Immutable high-level sender counters plus the active ingress snapshot.

    -
    interface QwpSenderMetrics {
        autoFlushBytes: number;
        closed: boolean;
        closing: boolean;
        connected: boolean;
        deferredRows: number;
        effectiveAutoFlushBytes: number;
        ingress?: QwpIngressMetrics;
        pendingBytes: number;
        pendingRows: number;
        totalFlushes: number;
        totalFlushFailures: number;
        totalRowsPublished: number;
        totalRowsStaged: number;
        totalTransactionsCommitted: number;
    }
    Index

    Properties

    interface QwpSenderMetrics {
        autoFlushBytes: number;
        closed: boolean;
        closing: boolean;
        connected: boolean;
        deferredRows: number;
        effectiveAutoFlushBytes: number;
        ingress?: QwpIngressMetrics;
        pendingBytes: number;
        pendingRows: number;
        totalFlushes: number;
        totalFlushFailures: number;
        totalRowsPublished: number;
        totalRowsStaged: number;
        totalTransactionsCommitted: number;
    }
    Index

    Properties

    autoFlushBytes: number
    closed: boolean
    closing: boolean
    connected: boolean
    deferredRows: number
    effectiveAutoFlushBytes: number
    pendingBytes: number

    Estimated raw column-buffer bytes currently staged.

    -
    pendingRows: number
    totalFlushes: number
    totalFlushFailures: number
    totalRowsPublished: number

    Rows whose encoded frames have entered the ingress session.

    -
    totalRowsStaged: number
    totalTransactionsCommitted: number
    +

    Properties

    autoFlushBytes: number
    closed: boolean
    closing: boolean
    connected: boolean
    deferredRows: number
    effectiveAutoFlushBytes: number
    pendingBytes: number

    Estimated raw column-buffer bytes currently staged.

    +
    pendingRows: number
    totalFlushes: number
    totalFlushFailures: number
    totalRowsPublished: number

    Rows whose encoded frames have entered the ingress session.

    +
    totalRowsStaged: number
    totalTransactionsCommitted: number
    diff --git a/docs/interfaces/_questdb_browser-client.QwpServerInfoMessage.html b/docs/interfaces/_questdb_browser-client.QwpServerInfoMessage.html index 1f277cda..ffa8d808 100644 --- a/docs/interfaces/_questdb_browser-client.QwpServerInfoMessage.html +++ b/docs/interfaces/_questdb_browser-client.QwpServerInfoMessage.html @@ -1,5 +1,5 @@ QwpServerInfoMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpServerInfoMessage

    Immutable endpoint metadata from the most recent successful egress bind.

    -
    interface QwpServerInfoMessage {
        capabilities: number;
        clusterId: string;
        compressionCodec: null | number;
        compressionLevel: null | number;
        epoch: bigint;
        flags: number;
        kind: "server-info";
        nodeId: string;
        payloadLength: number;
        role: number;
        serverWallNanoseconds: bigint;
        tableCount: number;
        version: number;
        zoneId: null | string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    interface QwpServerInfoMessage {
        capabilities: number;
        clusterId: string;
        compressionCodec: null | number;
        compressionLevel: null | number;
        epoch: bigint;
        flags: number;
        kind: "server-info";
        nodeId: string;
        payloadLength: number;
        role: number;
        serverWallNanoseconds: bigint;
        tableCount: number;
        version: number;
        zoneId: null | string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    capabilities: number
    clusterId: string
    compressionCodec: null | number
    compressionLevel: null | number
    epoch: bigint
    flags: number
    kind: "server-info"
    nodeId: string
    payloadLength: number
    role: number
    serverWallNanoseconds: bigint
    tableCount: number
    version: number
    zoneId: null | string
    +

    Properties

    capabilities: number
    clusterId: string
    compressionCodec: null | number
    compressionLevel: null | number
    epoch: bigint
    flags: number
    kind: "server-info"
    nodeId: string
    payloadLength: number
    role: number
    serverWallNanoseconds: bigint
    tableCount: number
    version: number
    zoneId: null | string
    diff --git a/docs/interfaces/_questdb_browser-client.QwpSymbolValue.html b/docs/interfaces/_questdb_browser-client.QwpSymbolValue.html index 115f4e30..a5015c97 100644 --- a/docs/interfaces/_questdb_browser-client.QwpSymbolValue.html +++ b/docs/interfaces/_questdb_browser-client.QwpSymbolValue.html @@ -1,3 +1,3 @@ -QwpSymbolValue | QuestDB JavaScript Client - v5.0.0
    interface QwpSymbolValue {
        id: number;
        text: string;
    }
    Index

    Properties

    id +QwpSymbolValue | QuestDB JavaScript Client - v5.0.0
    interface QwpSymbolValue {
        id: number;
        text: string;
    }
    Index

    Properties

    Properties

    id: number
    text: string
    +

    Properties

    id: number
    text: string
    diff --git a/docs/interfaces/_questdb_browser-client.QwpUpgradeErrorDetails.html b/docs/interfaces/_questdb_browser-client.QwpUpgradeErrorDetails.html index 70cb47b7..4856784f 100644 --- a/docs/interfaces/_questdb_browser-client.QwpUpgradeErrorDetails.html +++ b/docs/interfaces/_questdb_browser-client.QwpUpgradeErrorDetails.html @@ -1,4 +1,4 @@ -QwpUpgradeErrorDetails | QuestDB JavaScript Client - v5.0.0

    Interface QwpUpgradeErrorDetails

    interface QwpUpgradeErrorDetails {
        cause?: unknown;
        closeCode?: number;
        kind: QwpUpgradeErrorKind;
        retryable?: boolean;
        serverRole?: string;
        serverZone?: string;
        statusCode?: number;
        statusMessage?: string;
        timeoutPhase?: QwpUpgradeTimeoutPhase;
        tryNextEndpoint?: boolean;
        url?: string | URL;
    }
    Index

    Properties

    cause? +QwpUpgradeErrorDetails | QuestDB JavaScript Client - v5.0.0

    Interface QwpUpgradeErrorDetails

    interface QwpUpgradeErrorDetails {
        cause?: unknown;
        closeCode?: number;
        kind: QwpUpgradeErrorKind;
        retryable?: boolean;
        serverRole?: string;
        serverZone?: string;
        statusCode?: number;
        statusMessage?: string;
        timeoutPhase?: QwpUpgradeTimeoutPhase;
        tryNextEndpoint?: boolean;
        url?: string | URL;
    }
    Index

    Properties

    cause?: unknown
    closeCode?: number
    retryable?: boolean

    Whether a later retry against the configured endpoint set may recover.

    -
    serverRole?: string
    serverZone?: string
    statusCode?: number
    statusMessage?: string
    timeoutPhase?: QwpUpgradeTimeoutPhase
    tryNextEndpoint?: boolean

    Whether failover code should try another endpoint before surfacing this.

    -
    url?: string | URL
    +

    Properties

    cause?: unknown
    closeCode?: number
    retryable?: boolean

    Whether a later retry against the configured endpoint set may recover.

    +
    serverRole?: string
    serverZone?: string
    statusCode?: number
    statusMessage?: string
    timeoutPhase?: QwpUpgradeTimeoutPhase
    tryNextEndpoint?: boolean

    Whether failover code should try another endpoint before surfacing this.

    +
    url?: string | URL
    diff --git a/docs/interfaces/_questdb_browser-client.QwpUuidValue.html b/docs/interfaces/_questdb_browser-client.QwpUuidValue.html index 040a443d..f420138a 100644 --- a/docs/interfaces/_questdb_browser-client.QwpUuidValue.html +++ b/docs/interfaces/_questdb_browser-client.QwpUuidValue.html @@ -1,3 +1,3 @@ -QwpUuidValue | QuestDB JavaScript Client - v5.0.0
    interface QwpUuidValue {
        high: bigint;
        low: bigint;
    }
    Index

    Properties

    high +QwpUuidValue | QuestDB JavaScript Client - v5.0.0
    interface QwpUuidValue {
        high: bigint;
        low: bigint;
    }
    Index

    Properties

    Properties

    high: bigint
    low: bigint
    +

    Properties

    high: bigint
    low: bigint
    diff --git a/docs/interfaces/_questdb_browser-client.QwpWebSocketLike.html b/docs/interfaces/_questdb_browser-client.QwpWebSocketLike.html index a50948af..a70de1d9 100644 --- a/docs/interfaces/_questdb_browser-client.QwpWebSocketLike.html +++ b/docs/interfaces/_questdb_browser-client.QwpWebSocketLike.html @@ -1,4 +1,4 @@ -QwpWebSocketLike | QuestDB JavaScript Client - v5.0.0

    Interface QwpWebSocketLike

    interface QwpWebSocketLike {
        binaryType: string;
        bufferedAmount?: number;
        protocol?: string;
        readyState: number;
        addEventListener(
            type: "open",
            listener: (event: unknown) => void,
            options?: { once?: boolean },
        ): void;
        addEventListener(
            type: "message",
            listener: (event: QwpWebSocketMessageEvent) => void,
        ): void;
        addEventListener(
            type: "error",
            listener: (event: unknown) => void,
            options?: { once?: boolean },
        ): void;
        addEventListener(
            type: "close",
            listener: (event: QwpWebSocketCloseEvent) => void,
            options?: { once?: boolean },
        ): void;
        close(code?: number, reason?: string): void;
        ping(): void;
        removeEventListener(type: "open", listener: (event: unknown) => void): void;
        removeEventListener(
            type: "message",
            listener: (event: QwpWebSocketMessageEvent) => void,
        ): void;
        removeEventListener(
            type: "error",
            listener: (event: unknown) => void,
        ): void;
        removeEventListener(
            type: "close",
            listener: (event: QwpWebSocketCloseEvent) => void,
        ): void;
        send(data: Uint8Array): void;
        sendWithCallback(data: Uint8Array, callback: (error?: Error) => void): void;
        terminate(): void;
    }
    Index

    Properties

    binaryType +QwpWebSocketLike | QuestDB JavaScript Client - v5.0.0

    Interface QwpWebSocketLike

    interface QwpWebSocketLike {
        binaryType: string;
        bufferedAmount?: number;
        protocol?: string;
        readyState: number;
        addEventListener(
            type: "open",
            listener: (event: unknown) => void,
            options?: { once?: boolean },
        ): void;
        addEventListener(
            type: "message",
            listener: (event: QwpWebSocketMessageEvent) => void,
        ): void;
        addEventListener(
            type: "error",
            listener: (event: unknown) => void,
            options?: { once?: boolean },
        ): void;
        addEventListener(
            type: "close",
            listener: (event: QwpWebSocketCloseEvent) => void,
            options?: { once?: boolean },
        ): void;
        close(code?: number, reason?: string): void;
        ping(): void;
        removeEventListener(type: "open", listener: (event: unknown) => void): void;
        removeEventListener(
            type: "message",
            listener: (event: QwpWebSocketMessageEvent) => void,
        ): void;
        removeEventListener(
            type: "error",
            listener: (event: unknown) => void,
        ): void;
        removeEventListener(
            type: "close",
            listener: (event: QwpWebSocketCloseEvent) => void,
        ): void;
        send(data: Uint8Array): void;
        sendWithCallback(data: Uint8Array, callback: (error?: Error) => void): void;
        terminate(): void;
    }
    Index

    Properties

    binaryType: string
    bufferedAmount?: number

    Number of application bytes queued by WHATWG-compatible WebSockets.

    -
    protocol?: string

    WebSocket subprotocol selected by the server, or an empty string.

    -
    readyState: number

    Methods

    +

    Properties

    binaryType: string
    bufferedAmount?: number

    Number of application bytes queued by WHATWG-compatible WebSockets.

    +
    protocol?: string

    WebSocket subprotocol selected by the server, or an empty string.

    +
    readyState: number

    Methods

    diff --git a/docs/interfaces/_questdb_browser-client.QwpWriterColumn.html b/docs/interfaces/_questdb_browser-client.QwpWriterColumn.html index 41bfcad7..e2cfea3e 100644 --- a/docs/interfaces/_questdb_browser-client.QwpWriterColumn.html +++ b/docs/interfaces/_questdb_browser-client.QwpWriterColumn.html @@ -1,5 +1,5 @@ QwpWriterColumn | QuestDB JavaScript Client - v5.0.0

    Interface QwpWriterColumn<T, DesignatedTimestamp>

    A reusable, immutable column definition for a compiled QWP table writer.

    -
    interface QwpWriterColumn<T, DesignatedTimestamp extends boolean = false> {
        __qwpWriterInput?: T;
        designatedTimestamp: DesignatedTimestamp;
        kind: QwpWriterColumnKind;
        precisionBits?: number;
        scale?: number;
        unit?: QwpTimestampUnit;
    }

    Type Parameters

    • T
    • DesignatedTimestamp extends boolean = false
    Index

    Properties

    interface QwpWriterColumn<T, DesignatedTimestamp extends boolean = false> {
        __qwpWriterInput?: T;
        designatedTimestamp: DesignatedTimestamp;
        kind: QwpWriterColumnKind;
        precisionBits?: number;
        scale?: number;
        unit?: QwpTimestampUnit;
    }

    Type Parameters

    • T
    • DesignatedTimestamp extends boolean = false
    Index

    Properties

    __qwpWriterInput? designatedTimestamp kind precisionBits? @@ -14,6 +14,6 @@ silently accept anything. A shared property name resolves structurally across bundles, which is what keeps row typing alive for consumers of the published package.

    -
    designatedTimestamp: DesignatedTimestamp
    precisionBits?: number

    GEOHASH precision in bits, fixed for the whole column.

    -
    scale?: number

    DECIMAL scale, fixed for the whole column.

    -
    +
    designatedTimestamp: DesignatedTimestamp
    precisionBits?: number

    GEOHASH precision in bits, fixed for the whole column.

    +
    scale?: number

    DECIMAL scale, fixed for the whole column.

    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpArrayValue.html b/docs/interfaces/_questdb_nodejs-client.QwpArrayValue.html index e0675ca2..29435d3f 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpArrayValue.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpArrayValue.html @@ -1,4 +1,4 @@ -QwpArrayValue | QuestDB JavaScript Client - v5.0.0
    interface QwpArrayValue {
        dimensions: number[];
        values: (number | bigint)[];
    }
    Index

    Properties

    dimensions +QwpArrayValue | QuestDB JavaScript Client - v5.0.0
    interface QwpArrayValue {
        dimensions: number[];
        values: (number | bigint)[];
    }
    Index

    Properties

    Properties

    dimensions: number[]
    values: (number | bigint)[]

    DOUBLE_ARRAY uses numbers; LONG_ARRAY uses safe integers or signed int64 bigints.

    -
    +

    Properties

    dimensions: number[]
    values: (number | bigint)[]

    DOUBLE_ARRAY uses numbers; LONG_ARRAY uses safe integers or signed int64 bigints.

    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpCacheResetMessage.html b/docs/interfaces/_questdb_nodejs-client.QwpCacheResetMessage.html index a82e795a..89220747 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpCacheResetMessage.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpCacheResetMessage.html @@ -1,7 +1,7 @@ -QwpCacheResetMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpCacheResetMessage

    interface QwpCacheResetMessage {
        flags: number;
        kind: "cache-reset";
        payloadLength: number;
        resetMask: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags +QwpCacheResetMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpCacheResetMessage

    interface QwpCacheResetMessage {
        flags: number;
        kind: "cache-reset";
        payloadLength: number;
        resetMask: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags: number
    kind: "cache-reset"
    payloadLength: number
    resetMask: number
    tableCount: number
    version: number
    +

    Properties

    flags: number
    kind: "cache-reset"
    payloadLength: number
    resetMask: number
    tableCount: number
    version: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpClientFactories.html b/docs/interfaces/_questdb_nodejs-client.QwpClientFactories.html index 538d97b0..bb54702a 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpClientFactories.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpClientFactories.html @@ -1,9 +1,9 @@ -QwpClientFactories | QuestDB JavaScript Client - v5.0.0

    Interface QwpClientFactories

    interface QwpClientFactories {
        senderSlotReservation?: QwpPoolSlotReservation;
        close(): void | Promise<void>;
        createQuerySession(
            slot: number,
            signal?: AbortSignal,
        ): Promise<QwpEgressSession>;
        createSender(slot: number, signal?: AbortSignal): Promise<QwpSender>;
        start(): void | Promise<void>;
    }
    Index

    Properties

    senderSlotReservation? +QwpClientFactories | QuestDB JavaScript Client - v5.0.0

    Interface QwpClientFactories

    interface QwpClientFactories {
        senderSlotReservation?: QwpPoolSlotReservation;
        close(): void | Promise<void>;
        createQuerySession(
            slot: number,
            signal?: AbortSignal,
        ): Promise<QwpEgressSession>;
        createSender(slot: number, signal?: AbortSignal): Promise<QwpSender>;
        start(): void | Promise<void>;
    }
    Index

    Properties

    senderSlotReservation?: QwpPoolSlotReservation

    Coordinates stable persistent sender slots with recovery.

    -

    Methods

    +

    Methods

    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpClientMetrics.html b/docs/interfaces/_questdb_nodejs-client.QwpClientMetrics.html index 53f565c9..1a953d35 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpClientMetrics.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpClientMetrics.html @@ -1,5 +1,5 @@ -QwpClientMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpClientMetrics

    interface QwpClientMetrics {
        closed: boolean;
        closing: boolean;
        queries: QwpResourcePoolMetrics;
        senders: QwpResourcePoolMetrics;
    }
    Index

    Properties

    closed +QwpClientMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpClientMetrics

    interface QwpClientMetrics {
        closed: boolean;
        closing: boolean;
        queries: QwpResourcePoolMetrics;
        senders: QwpResourcePoolMetrics;
    }
    Index

    Properties

    closed: boolean
    closing: boolean
    +

    Properties

    closed: boolean
    closing: boolean
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpClientPoolOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpClientPoolOptions.html index 2e5e4b6b..68458b2a 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpClientPoolOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpClientPoolOptions.html @@ -1,4 +1,4 @@ -QwpClientPoolOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpClientPoolOptions

    interface QwpClientPoolOptions {
        acquireTimeoutMs?: number;
        housekeepingIntervalMs?: number;
        idleTimeoutMs?: number;
        maxLifetimeMs?: number;
        queryPoolMax?: number;
        queryPoolMin?: number;
        senderPoolMax?: number;
        senderPoolMin?: number;
    }
    Index

    Properties

    acquireTimeoutMs? +QwpClientPoolOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpClientPoolOptions

    interface QwpClientPoolOptions {
        acquireTimeoutMs?: number;
        housekeepingIntervalMs?: number;
        idleTimeoutMs?: number;
        maxLifetimeMs?: number;
        queryPoolMax?: number;
        queryPoolMin?: number;
        senderPoolMax?: number;
        senderPoolMin?: number;
    }
    Index

    Properties

    acquireTimeoutMs? housekeepingIntervalMs? idleTimeoutMs? maxLifetimeMs? @@ -10,17 +10,17 @@ The shutdown wait is capped at 5 seconds. Defaults to 5 seconds. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    housekeepingIntervalMs?: number

    Idle/lifetime sweep interval. Defaults to 5s and must be at least 100ms. +

    housekeepingIntervalMs?: number

    Idle/lifetime sweep interval. Defaults to 5s and must be at least 100ms. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    idleTimeoutMs?: number

    Idle time before an excess pooled connection is closed. Defaults to 60s; +

    idleTimeoutMs?: number

    Idle time before an excess pooled connection is closed. Defaults to 60s; zero disables. Not capped at the host timer ceiling: compared against elapsed time only.

    -
    maxLifetimeMs?: number

    Maximum pooled connection age before recycling it while idle. Defaults to +

    maxLifetimeMs?: number

    Maximum pooled connection age before recycling it while idle. Defaults to 30m; zero disables. Not capped at the host timer ceiling: compared against elapsed time only.

    -
    queryPoolMax?: number

    Maximum concurrently borrowed query connections. Defaults to 4.

    -
    queryPoolMin?: number

    Warm egress connections created by connect(). Defaults to 1.

    -
    senderPoolMax?: number

    Maximum concurrently borrowed ingress senders. Defaults to 4.

    -
    senderPoolMin?: number

    Warm ingress connections created by connect(). Defaults to 1.

    -
    +
    queryPoolMax?: number

    Maximum concurrently borrowed query connections. Defaults to 4.

    +
    queryPoolMin?: number

    Warm egress connections created by connect(). Defaults to 1.

    +
    senderPoolMax?: number

    Maximum concurrently borrowed ingress senders. Defaults to 4.

    +
    senderPoolMin?: number

    Warm ingress connections created by connect(). Defaults to 1.

    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpColumnBuffer.html b/docs/interfaces/_questdb_nodejs-client.QwpColumnBuffer.html index 044ef67a..c5a8c0e4 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpColumnBuffer.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpColumnBuffer.html @@ -1,4 +1,4 @@ -QwpColumnBuffer | QuestDB JavaScript Client - v5.0.0

    Interface QwpColumnBuffer

    interface QwpColumnBuffer {
        committedValues: number;
        decimalScale?: number;
        geohashPrecision?: number;
        name: string;
        nulls: boolean[];
        size: number;
        type: QwpColumnType;
        values: unknown[];
    }
    Index

    Properties

    committedValues +QwpColumnBuffer | QuestDB JavaScript Client - v5.0.0

    Interface QwpColumnBuffer

    interface QwpColumnBuffer {
        committedValues: number;
        decimalScale?: number;
        geohashPrecision?: number;
        name: string;
        nulls: boolean[];
        size: number;
        type: QwpColumnType;
        values: unknown[];
    }
    Index

    Properties

    committedValues: number

    Length values had when the last row completed -- everything past it belongs to the row in progress. rollbackRow() truncates to this mark; see the failure it exists to prevent there. Maintained by QwpTableBuffer.

    -
    decimalScale?: number
    geohashPrecision?: number
    name: string
    nulls: boolean[]

    One entry per row; true means NULL.

    -
    size: number

    Rows accounted for so far, including nulls.

    -
    values: unknown[]

    Non-null values only; QWP compacts values around the null bitmap. +

    decimalScale?: number
    geohashPrecision?: number
    name: string
    nulls: boolean[]

    One entry per row; true means NULL.

    +
    size: number

    Rows accounted for so far, including nulls.

    +
    values: unknown[]

    Non-null values only; QWP compacts values around the null bitmap. LONG, DATE, and TIMESTAMP values accept safe integer numbers or signed int64 bigints. LONG_ARRAY applies the same rule to every element.

    -
    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpConnectionCloseInfo.html b/docs/interfaces/_questdb_nodejs-client.QwpConnectionCloseInfo.html index 361a699e..7951ca59 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpConnectionCloseInfo.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpConnectionCloseInfo.html @@ -1,4 +1,4 @@ -QwpConnectionCloseInfo | QuestDB JavaScript Client - v5.0.0

    Interface QwpConnectionCloseInfo

    interface QwpConnectionCloseInfo {
        code: number;
        reason: string;
        wasClean: boolean;
    }
    Index

    Properties

    code +QwpConnectionCloseInfo | QuestDB JavaScript Client - v5.0.0

    Interface QwpConnectionCloseInfo

    interface QwpConnectionCloseInfo {
        code: number;
        reason: string;
        wasClean: boolean;
    }
    Index

    Properties

    Properties

    code: number
    reason: string
    wasClean: boolean
    +

    Properties

    code: number
    reason: string
    wasClean: boolean
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpDecimalValue.html b/docs/interfaces/_questdb_nodejs-client.QwpDecimalValue.html index 3d86c984..67d0cdf2 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpDecimalValue.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpDecimalValue.html @@ -1,3 +1,3 @@ -QwpDecimalValue | QuestDB JavaScript Client - v5.0.0

    Interface QwpDecimalValue

    interface QwpDecimalValue {
        scale: number;
        unscaled: bigint;
    }
    Index

    Properties

    scale +QwpDecimalValue | QuestDB JavaScript Client - v5.0.0

    Interface QwpDecimalValue

    interface QwpDecimalValue {
        scale: number;
        unscaled: bigint;
    }
    Index

    Properties

    Properties

    scale: number
    unscaled: bigint
    +

    Properties

    scale: number
    unscaled: bigint
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpEgressFailoverResetEvent.html b/docs/interfaces/_questdb_nodejs-client.QwpEgressFailoverResetEvent.html index cf7d1a01..ecee1524 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpEgressFailoverResetEvent.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpEgressFailoverResetEvent.html @@ -2,11 +2,11 @@ replacement connection. It fires on every reconnect that replays a query, whether the new connection reached another endpoint (a failed-over event) or the same one (reconnected).

    -
    interface QwpEgressFailoverResetEvent {
        cause?: unknown;
        endpoint?: string | URL;
        previousEndpoint?: string | URL;
        requestId: bigint;
        serverInfo: QwpServerInfoMessage;
    }
    Index

    Properties

    interface QwpEgressFailoverResetEvent {
        cause?: unknown;
        endpoint?: string | URL;
        previousEndpoint?: string | URL;
        requestId: bigint;
        serverInfo: QwpServerInfoMessage;
    }
    Index

    Properties

    cause?: unknown
    endpoint?: string | URL
    previousEndpoint?: string | URL
    requestId: bigint

    Client request being re-executed on the replacement connection.

    -

    Authoritative SERVER_INFO received from the replacement endpoint.

    -
    +

    Properties

    cause?: unknown
    endpoint?: string | URL
    previousEndpoint?: string | URL
    requestId: bigint

    Client request being re-executed on the replacement connection.

    +

    Authoritative SERVER_INFO received from the replacement endpoint.

    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpEgressMetrics.html b/docs/interfaces/_questdb_nodejs-client.QwpEgressMetrics.html index d80594d0..0e703d03 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpEgressMetrics.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpEgressMetrics.html @@ -1,4 +1,4 @@ QwpEgressMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpEgressMetrics

    Immutable notification-inbox counters for an egress session.

    -
    interface QwpEgressMetrics {
        deliveredConnectionNotifications: number;
        droppedConnectionNotifications: number;
    }
    Index

    Properties

    interface QwpEgressMetrics {
        deliveredConnectionNotifications: number;
        droppedConnectionNotifications: number;
    }
    Index

    Properties

    deliveredConnectionNotifications: number
    droppedConnectionNotifications: number
    +

    Properties

    deliveredConnectionNotifications: number
    droppedConnectionNotifications: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpEgressQueryOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpEgressQueryOptions.html index 5fe56cfd..02a0e905 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpEgressQueryOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpEgressQueryOptions.html @@ -1,4 +1,4 @@ -QwpEgressQueryOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpEgressQueryOptions

    interface QwpEgressQueryOptions {
        autoCredit?: boolean;
        bindCount?: number;
        bindPayload?: Uint8Array;
        binds?: QwpBindSetter;
        initialCredit?: number | bigint;
        onFailoverReset?: (
            event: QwpEgressFailoverResetEvent,
        ) => void | Promise<void>;
        resetDictionary?: boolean;
        timeoutMs?: number;
    }
    Index

    Properties

    autoCredit? +QwpEgressQueryOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpEgressQueryOptions

    interface QwpEgressQueryOptions {
        autoCredit?: boolean;
        bindCount?: number;
        bindPayload?: Uint8Array;
        binds?: QwpBindSetter;
        initialCredit?: number | bigint;
        onFailoverReset?: (
            event: QwpEgressFailoverResetEvent,
        ) => void | Promise<void>;
        resetDictionary?: boolean;
        timeoutMs?: number;
    }
    Index

    Properties

    Properties

    autoCredit?: boolean

    Replenishes positive initial credit by each RESULT_BATCH wire size after the async iterator advances past that batch. Defaults to true.

    -
    bindCount?: number

    Advanced escape hatch for an already encoded bind section.

    -
    bindPayload?: Uint8Array

    Advanced escape hatch for an already encoded bind section.

    -

    Sets typed positional parameters; index 0 maps to SQL placeholder $1.

    -
    initialCredit?: number | bigint

    Overrides session send-ahead credit. Zero explicitly disables flow control.

    -
    onFailoverReset?: (event: QwpEgressFailoverResetEvent) => void | Promise<void>

    Notification before this query is replayed after failover. Use it to clear +

    bindCount?: number

    Advanced escape hatch for an already encoded bind section.

    +
    bindPayload?: Uint8Array

    Advanced escape hatch for an already encoded bind section.

    +

    Sets typed positional parameters; index 0 maps to SQL placeholder $1.

    +
    initialCredit?: number | bigint

    Overrides session send-ahead credit. Zero explicitly disables flow control.

    +
    onFailoverReset?: (event: QwpEgressFailoverResetEvent) => void | Promise<void>

    Notification before this query is replayed after failover. Use it to clear results already consumed from the old connection. Overrides the session's onFailoverReset for this query; the callback is awaited before replay. The query's timeout keeps running meanwhile, and a query whose timeout expires first is not replayed.

    -
    resetDictionary?: boolean

    Ask a capable server to reset its connection-scoped symbol dictionary. +

    resetDictionary?: boolean

    Ask a capable server to reset its connection-scoped symbol dictionary. Silently omitted when the server lacks QUERY_FLAGS for rolling upgrades.

    -
    timeoutMs?: number

    Per-query timeout overriding the session default; zero disables it.

    +
    timeoutMs?: number

    Per-query timeout overriding the session default; zero disables it.

    It bounds the whole query, measured from the query() call: waiting for a previous query to drain, any reconnect, server execution, and the time spent consuming results, which is not interrupted. Once it expires no @@ -32,4 +32,4 @@ connection is lost, the timeout is reported at once and the query is not replayed. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpEgressReconnectOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpEgressReconnectOptions.html index b53c130c..5adc6b67 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpEgressReconnectOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpEgressReconnectOptions.html @@ -1,17 +1,17 @@ QwpEgressReconnectOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpEgressReconnectOptions

    Egress failover policy: the reconnect option of an egress session. Unlike ingress, each failover episode is bounded, so a caller waiting for a query result is not left waiting through a long outage.

    -
    interface QwpEgressReconnectOptions {
        failoverBackoffInitialMs?: number;
        failoverBackoffMaxMs?: number;
        failoverMaxAttempts?: number;
        failoverMaxDurationMs?: number;
        onEvent?: (event: QwpReconnectEvent) => void;
    }
    Index

    Properties

    interface QwpEgressReconnectOptions {
        failoverBackoffInitialMs?: number;
        failoverBackoffMaxMs?: number;
        failoverMaxAttempts?: number;
        failoverMaxDurationMs?: number;
        onEvent?: (event: QwpReconnectEvent) => void;
    }
    Index

    Properties

    failoverBackoffInitialMs?: number

    Full-jitter ceiling before the first failed connection sweep is retried. Must not exceed 2_147_483_647ms. Defaults to 50ms.

    -
    failoverBackoffMaxMs?: number

    Full-jitter exponential-backoff ceiling. Must not exceed 2_147_483_647ms. +

    failoverBackoffMaxMs?: number

    Full-jitter exponential-backoff ceiling. Must not exceed 2_147_483_647ms. Defaults to 1 second.

    -
    failoverMaxAttempts?: number

    Maximum connection sweeps per failover episode; zero is unlimited. +

    failoverMaxAttempts?: number

    Maximum connection sweeps per failover episode; zero is unlimited. Defaults to 8.

    -
    failoverMaxDurationMs?: number

    Deadline for one failover episode; zero disables it. Defaults to 30 +

    failoverMaxDurationMs?: number

    Deadline for one failover episode; zero disables it. Defaults to 30 seconds.

    -
    onEvent?: (event: QwpReconnectEvent) => void
    +
    onEvent?: (event: QwpReconnectEvent) => void
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpEgressViewQuery.html b/docs/interfaces/_questdb_nodejs-client.QwpEgressViewQuery.html index 9500ecc3..d756333d 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpEgressViewQuery.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpEgressViewQuery.html @@ -1,9 +1,9 @@ QwpEgressViewQuery | QuestDB JavaScript Client - v5.0.0

    Interface QwpEgressViewQuery

    Control handle returned by queryViews().

    -
    interface QwpEgressViewQuery {
        completion: Promise<QwpQueryCompletion>;
        requestId: bigint;
        awaitCompletion(timeoutMs: number): Promise<boolean>;
        cancel(): Promise<void>;
        grantCredit(additionalBytes: number | bigint): Promise<void>;
        isDone(): boolean;
    }
    Index

    Properties

    interface QwpEgressViewQuery {
        completion: Promise<QwpQueryCompletion>;
        requestId: bigint;
        awaitCompletion(timeoutMs: number): Promise<boolean>;
        cancel(): Promise<void>;
        grantCredit(additionalBytes: number | bigint): Promise<void>;
        isDone(): boolean;
    }
    Index

    Properties

    completion: Promise<QwpQueryCompletion>
    requestId: bigint

    Methods

    +

    Properties

    completion: Promise<QwpQueryCompletion>
    requestId: bigint

    Methods

    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpEncodedBinds.html b/docs/interfaces/_questdb_nodejs-client.QwpEncodedBinds.html index ab4a2541..ea166051 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpEncodedBinds.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpEncodedBinds.html @@ -1,3 +1,3 @@ -QwpEncodedBinds | QuestDB JavaScript Client - v5.0.0

    Interface QwpEncodedBinds

    interface QwpEncodedBinds {
        count: number;
        payload: Uint8Array;
    }
    Index

    Properties

    count +QwpEncodedBinds | QuestDB JavaScript Client - v5.0.0

    Interface QwpEncodedBinds

    interface QwpEncodedBinds {
        count: number;
        payload: Uint8Array;
    }
    Index

    Properties

    Properties

    count: number
    payload: Uint8Array
    +

    Properties

    count: number
    payload: Uint8Array
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpExecDoneMessage.html b/docs/interfaces/_questdb_nodejs-client.QwpExecDoneMessage.html index 771f7575..dff62256 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpExecDoneMessage.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpExecDoneMessage.html @@ -1,4 +1,4 @@ -QwpExecDoneMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpExecDoneMessage

    interface QwpExecDoneMessage {
        flags: number;
        kind: "exec-done";
        operationType: number;
        payloadLength: number;
        requestId: bigint;
        rowsAffected: bigint;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags +QwpExecDoneMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpExecDoneMessage

    interface QwpExecDoneMessage {
        flags: number;
        kind: "exec-done";
        operationType: number;
        payloadLength: number;
        requestId: bigint;
        rowsAffected: bigint;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags: number
    kind: "exec-done"
    operationType: number
    payloadLength: number
    requestId: bigint
    rowsAffected: bigint
    tableCount: number
    version: number
    +

    Properties

    flags: number
    kind: "exec-done"
    operationType: number
    payloadLength: number
    requestId: bigint
    rowsAffected: bigint
    tableCount: number
    version: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpFailoverAttempt.html b/docs/interfaces/_questdb_nodejs-client.QwpFailoverAttempt.html index b0b0a419..9c5e10b9 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpFailoverAttempt.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpFailoverAttempt.html @@ -1,3 +1,3 @@ -QwpFailoverAttempt | QuestDB JavaScript Client - v5.0.0

    Interface QwpFailoverAttempt

    interface QwpFailoverAttempt {
        endpoint: string | URL;
        error: unknown;
    }
    Index

    Properties

    endpoint +QwpFailoverAttempt | QuestDB JavaScript Client - v5.0.0

    Interface QwpFailoverAttempt

    interface QwpFailoverAttempt {
        endpoint: string | URL;
        error: unknown;
    }
    Index

    Properties

    Properties

    endpoint: string | URL
    error: unknown
    +

    Properties

    endpoint: string | URL
    error: unknown
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpFrame.html b/docs/interfaces/_questdb_nodejs-client.QwpFrame.html index 726638b3..63405672 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpFrame.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpFrame.html @@ -1,6 +1,6 @@ -QwpFrame | QuestDB JavaScript Client - v5.0.0
    interface QwpFrame {
        flags: number;
        payload: Uint8Array;
        payloadLength: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags +QwpFrame | QuestDB JavaScript Client - v5.0.0
    interface QwpFrame {
        flags: number;
        payload: Uint8Array;
        payloadLength: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags: number
    payload: Uint8Array
    payloadLength: number
    tableCount: number
    version: number
    +

    Properties

    flags: number
    payload: Uint8Array
    payloadLength: number
    tableCount: number
    version: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpFrameHeader.html b/docs/interfaces/_questdb_nodejs-client.QwpFrameHeader.html index 01f18b5c..7adfff53 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpFrameHeader.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpFrameHeader.html @@ -1,5 +1,5 @@ -QwpFrameHeader | QuestDB JavaScript Client - v5.0.0

    Interface QwpFrameHeader

    interface QwpFrameHeader {
        flags: number;
        payloadLength: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags +QwpFrameHeader | QuestDB JavaScript Client - v5.0.0

    Interface QwpFrameHeader

    interface QwpFrameHeader {
        flags: number;
        payloadLength: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags: number
    payloadLength: number
    tableCount: number
    version: number
    +

    Properties

    flags: number
    payloadLength: number
    tableCount: number
    version: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpGeohashValue.html b/docs/interfaces/_questdb_nodejs-client.QwpGeohashValue.html index 126188e6..431ab30f 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpGeohashValue.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpGeohashValue.html @@ -1,3 +1,3 @@ -QwpGeohashValue | QuestDB JavaScript Client - v5.0.0

    Interface QwpGeohashValue

    interface QwpGeohashValue {
        bits: bigint;
        precisionBits: number;
    }
    Index

    Properties

    bits +QwpGeohashValue | QuestDB JavaScript Client - v5.0.0

    Interface QwpGeohashValue

    interface QwpGeohashValue {
        bits: bigint;
        precisionBits: number;
    }
    Index

    Properties

    Properties

    bits: bigint
    precisionBits: number
    +

    Properties

    bits: bigint
    precisionBits: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpHandshakeMetadata.html b/docs/interfaces/_questdb_nodejs-client.QwpHandshakeMetadata.html index 58441d22..a47ba4a3 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpHandshakeMetadata.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpHandshakeMetadata.html @@ -1,5 +1,5 @@ QwpHandshakeMetadata | QuestDB JavaScript Client - v5.0.0

    Interface QwpHandshakeMetadata

    Metadata negotiated during the QWP WebSocket upgrade.

    -
    interface QwpHandshakeMetadata {
        contentEncoding?: string;
        durableAckEnabled?: boolean;
        maxBatchSizeBytes?: number;
        negotiatedCompression?: QwpNegotiatedEgressCompression;
        qwpVersion: number;
        serverRole?: string;
        serverZone?: string;
    }
    Index

    Properties

    interface QwpHandshakeMetadata {
        contentEncoding?: string;
        durableAckEnabled?: boolean;
        maxBatchSizeBytes?: number;
        negotiatedCompression?: QwpNegotiatedEgressCompression;
        qwpVersion: number;
        serverRole?: string;
        serverZone?: string;
    }
    Index

    Properties

    contentEncoding?: string

    Server-selected egress content encoding, when advertised.

    -
    durableAckEnabled?: boolean

    Whether the server confirmed durable-ACK support.

    -
    maxBatchSizeBytes?: number

    Server's hard ingress WebSocket-payload cap, when advertised.

    -
    negotiatedCompression?: QwpNegotiatedEgressCompression

    Parsed effective egress codec and level selected by the server.

    -
    qwpVersion: number

    QWP protocol version selected by the server.

    -
    serverRole?: string

    Server role advertised on a successful upgrade, when available.

    -
    serverZone?: string

    Server zone advertised on a successful upgrade, when available.

    -
    +
    durableAckEnabled?: boolean

    Whether the server confirmed durable-ACK support.

    +
    maxBatchSizeBytes?: number

    Server's hard ingress WebSocket-payload cap, when advertised.

    +
    negotiatedCompression?: QwpNegotiatedEgressCompression

    Parsed effective egress codec and level selected by the server.

    +
    qwpVersion: number

    QWP protocol version selected by the server.

    +
    serverRole?: string

    Server role advertised on a successful upgrade, when available.

    +
    serverZone?: string

    Server zone advertised on a successful upgrade, when available.

    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpIngressEncodeOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpIngressEncodeOptions.html index 34dd98dc..088a5911 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpIngressEncodeOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpIngressEncodeOptions.html @@ -1,7 +1,7 @@ -QwpIngressEncodeOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressEncodeOptions

    interface QwpIngressEncodeOptions {
        confirmedMaxSymbolId?: number;
        deferCommit?: boolean;
        dictionary?: QwpSymbolDictionary;
        gorilla?: boolean;
    }
    Index

    Properties

    confirmedMaxSymbolId? +QwpIngressEncodeOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressEncodeOptions

    interface QwpIngressEncodeOptions {
        confirmedMaxSymbolId?: number;
        deferCommit?: boolean;
        dictionary?: QwpSymbolDictionary;
        gorilla?: boolean;
    }
    Index

    Properties

    confirmedMaxSymbolId?: number

    Highest global symbol ID already published on this logical connection.

    -
    deferCommit?: boolean
    dictionary?: QwpSymbolDictionary

    Present means connection-scoped delta dictionary mode.

    -
    gorilla?: boolean
    +
    deferCommit?: boolean
    dictionary?: QwpSymbolDictionary

    Present means connection-scoped delta dictionary mode.

    +
    gorilla?: boolean
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpIngressErrorEvent.html b/docs/interfaces/_questdb_nodejs-client.QwpIngressErrorEvent.html index 7544e811..8fb2858f 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpIngressErrorEvent.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpIngressErrorEvent.html @@ -1,8 +1,8 @@ -QwpIngressErrorEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressErrorEvent

    interface QwpIngressErrorEvent {
        error: Error;
        metrics: QwpIngressMetrics;
        response?: QwpIngressResponse;
        senderError?: QwpSenderError;
        terminal: boolean;
        timestampMs: number;
    }
    Index

    Properties

    error +QwpIngressErrorEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressErrorEvent

    interface QwpIngressErrorEvent {
        error: Error;
        metrics: QwpIngressMetrics;
        response?: QwpIngressResponse;
        senderError?: QwpSenderError;
        terminal: boolean;
        timestampMs: number;
    }
    Index

    Properties

    error: Error
    senderError?: QwpSenderError

    Present for a classified server rejection.

    -
    terminal: boolean
    timestampMs: number
    +

    Properties

    error: Error
    senderError?: QwpSenderError

    Present for a classified server rejection.

    +
    terminal: boolean
    timestampMs: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpIngressMetrics.html b/docs/interfaces/_questdb_nodejs-client.QwpIngressMetrics.html index d62d7221..dc434d2f 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpIngressMetrics.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpIngressMetrics.html @@ -1,5 +1,5 @@ QwpIngressMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressMetrics

    Immutable point-in-time ingress telemetry, safe in browsers and Node.js.

    -
    interface QwpIngressMetrics {
        ackedSequence: bigint;
        deliveredConnectionNotifications: number;
        deliveredErrorNotifications: number;
        deliveredProgressNotifications: number;
        droppedConnectionNotifications: number;
        droppedErrorNotifications: number;
        droppedProgressNotifications: number;
        lastError?: Error;
        memoryReplayMaxBytes?: number;
        memoryReplayUsedBytes?: number;
        pendingDurableTables: number;
        pendingReplayBytes: number;
        pendingReplayFrames: number;
        publishedSequence: bigint;
        replayAcknowledgedFrameSequence?: bigint;
        replayPublishedFrameSequence?: bigint;
        totalAcks: number;
        totalBytesPublished: number;
        totalBytesReplayed: number;
        totalBytesSent: number;
        totalDurableAcks: number;
        totalErrors: number;
        totalFailovers: number;
        totalFramesPublished: number;
        totalFramesReplayed: number;
        totalFramesSent: number;
        totalMemoryReplayAppendTimeouts: number;
        totalMemoryReplayBackpressureStalls: number;
        totalNacks: number;
        totalReconnectAttempts: number;
        totalReconnectErrors: number;
        totalReconnectsSucceeded: number;
        waitingMemoryReplayAppends: number;
    }
    Index

    Properties

    interface QwpIngressMetrics {
        ackedSequence: bigint;
        deliveredConnectionNotifications: number;
        deliveredErrorNotifications: number;
        deliveredProgressNotifications: number;
        droppedConnectionNotifications: number;
        droppedErrorNotifications: number;
        droppedProgressNotifications: number;
        lastError?: Error;
        memoryReplayMaxBytes?: number;
        memoryReplayUsedBytes?: number;
        pendingDurableTables: number;
        pendingReplayBytes: number;
        pendingReplayFrames: number;
        publishedSequence: bigint;
        replayAcknowledgedFrameSequence?: bigint;
        replayPublishedFrameSequence?: bigint;
        totalAcks: number;
        totalBytesPublished: number;
        totalBytesReplayed: number;
        totalBytesSent: number;
        totalDurableAcks: number;
        totalErrors: number;
        totalFailovers: number;
        totalFramesPublished: number;
        totalFramesReplayed: number;
        totalFramesSent: number;
        totalMemoryReplayAppendTimeouts: number;
        totalMemoryReplayBackpressureStalls: number;
        totalNacks: number;
        totalReconnectAttempts: number;
        totalReconnectErrors: number;
        totalReconnectsSucceeded: number;
        waitingMemoryReplayAppends: number;
    }
    Index

    Properties

    ackedSequence: bigint

    Highest client-session sequence covered by a successful cumulative ACK.

    -
    deliveredConnectionNotifications: number
    deliveredErrorNotifications: number
    deliveredProgressNotifications: number
    droppedConnectionNotifications: number
    droppedErrorNotifications: number
    droppedProgressNotifications: number
    lastError?: Error
    memoryReplayMaxBytes?: number
    memoryReplayUsedBytes?: number
    pendingDurableTables: number
    pendingReplayBytes: number
    pendingReplayFrames: number
    publishedSequence: bigint

    Highest client-session sequence allocated, or -1 before the first send.

    -
    replayAcknowledgedFrameSequence?: bigint

    Trim watermark; in durable-ACK mode it advances only after durability.

    -
    replayPublishedFrameSequence?: bigint

    Stable store-and-forward watermark; absent without reconnect/replay.

    -
    totalAcks: number
    totalBytesPublished: number
    totalBytesReplayed: number
    totalBytesSent: number
    totalDurableAcks: number
    totalErrors: number
    totalFailovers: number
    totalFramesPublished: number
    totalFramesReplayed: number
    totalFramesSent: number

    Physical sends; includes replay and dictionary catch-up when available.

    -
    totalMemoryReplayAppendTimeouts: number
    totalMemoryReplayBackpressureStalls: number
    totalNacks: number
    totalReconnectAttempts: number
    totalReconnectErrors: number
    totalReconnectsSucceeded: number
    waitingMemoryReplayAppends: number
    +
    deliveredConnectionNotifications: number
    deliveredErrorNotifications: number
    deliveredProgressNotifications: number
    droppedConnectionNotifications: number
    droppedErrorNotifications: number
    droppedProgressNotifications: number
    lastError?: Error
    memoryReplayMaxBytes?: number
    memoryReplayUsedBytes?: number
    pendingDurableTables: number
    pendingReplayBytes: number
    pendingReplayFrames: number
    publishedSequence: bigint

    Highest client-session sequence allocated, or -1 before the first send.

    +
    replayAcknowledgedFrameSequence?: bigint

    Trim watermark; in durable-ACK mode it advances only after durability.

    +
    replayPublishedFrameSequence?: bigint

    Stable store-and-forward watermark; absent without reconnect/replay.

    +
    totalAcks: number
    totalBytesPublished: number
    totalBytesReplayed: number
    totalBytesSent: number
    totalDurableAcks: number
    totalErrors: number
    totalFailovers: number
    totalFramesPublished: number
    totalFramesReplayed: number
    totalFramesSent: number

    Physical sends; includes replay and dictionary catch-up when available.

    +
    totalMemoryReplayAppendTimeouts: number
    totalMemoryReplayBackpressureStalls: number
    totalNacks: number
    totalReconnectAttempts: number
    totalReconnectErrors: number
    totalReconnectsSucceeded: number
    waitingMemoryReplayAppends: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpIngressProgressEvent.html b/docs/interfaces/_questdb_nodejs-client.QwpIngressProgressEvent.html index 39db3a67..81a850d9 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpIngressProgressEvent.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpIngressProgressEvent.html @@ -1,6 +1,6 @@ -QwpIngressProgressEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressProgressEvent

    interface QwpIngressProgressEvent {
        kind: QwpIngressProgressKind;
        metrics: QwpIngressMetrics;
        response?: QwpIngressResponse;
        sequence?: bigint;
        timestampMs: number;
    }
    Index

    Properties

    kind +QwpIngressProgressEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressProgressEvent

    interface QwpIngressProgressEvent {
        kind: QwpIngressProgressKind;
        metrics: QwpIngressMetrics;
        response?: QwpIngressResponse;
        sequence?: bigint;
        timestampMs: number;
    }
    Index

    Properties

    sequence?: bigint
    timestampMs: number
    +

    Properties

    sequence?: bigint
    timestampMs: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpIngressReconnectOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpIngressReconnectOptions.html index efff7249..017b495d 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpIngressReconnectOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpIngressReconnectOptions.html @@ -4,7 +4,7 @@ not stopped by any configured limit. Transport and endpoint failures are retried until close(), and only a terminal error ends the session. reconnectMaxDurationMs bounds a synchronous initial connect only.

    -
    interface QwpIngressReconnectOptions {
        maxFrameRejections?: number;
        onEvent?: (event: QwpReconnectEvent) => void;
        poisonMinEscalationWindowMs?: number;
        reconnectInitialBackoffMs?: number;
        reconnectMaxBackoffMs?: number;
        reconnectMaxDurationMs?: number;
    }
    Index

    Properties

    interface QwpIngressReconnectOptions {
        maxFrameRejections?: number;
        onEvent?: (event: QwpReconnectEvent) => void;
        poisonMinEscalationWindowMs?: number;
        reconnectInitialBackoffMs?: number;
        reconnectMaxBackoffMs?: number;
        reconnectMaxDurationMs?: number;
    }
    Index

    Properties

    maxFrameRejections?: number

    Consecutive retriable rejections of one frame before it is treated as poison and retained for inspection. Defaults to 4.

    -
    onEvent?: (event: QwpReconnectEvent) => void
    poisonMinEscalationWindowMs?: number

    Minimum time the same frame must remain suspect before repeated +

    onEvent?: (event: QwpReconnectEvent) => void
    poisonMinEscalationWindowMs?: number

    Minimum time the same frame must remain suspect before repeated rejections or non-orderly closes become terminal. Defaults to 5 seconds; zero escalates as soon as maxFrameRejections is reached.

    -
    reconnectInitialBackoffMs?: number

    Full-jitter ceiling before the first failed connection sweep is retried. +

    reconnectInitialBackoffMs?: number

    Full-jitter ceiling before the first failed connection sweep is retried. Must not exceed 2_147_483_647ms. Defaults to 100ms.

    -
    reconnectMaxBackoffMs?: number

    Full-jitter exponential-backoff ceiling. Must not exceed 2_147_483_647ms. +

    reconnectMaxBackoffMs?: number

    Full-jitter exponential-backoff ceiling. Must not exceed 2_147_483_647ms. Defaults to 5 seconds.

    -
    reconnectMaxDurationMs?: number

    How long a synchronous initial connect keeps retrying before it fails +

    reconnectMaxDurationMs?: number

    How long a synchronous initial connect keeps retrying before it fails with QwpReconnectExhaustedError. Defaults to 5 minutes. Zero allows one attempt and no retries, as in the Rust and Python clients; the attempt itself is not cut short. Reconnects after the first connection do not @@ -27,4 +27,4 @@ background (initialConnectMode "async", which Node's initial_connect_retry=async and the pooled client's lazy_connect also select): both retry until close() or a terminal error.

    -
    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpIngressResponse.html b/docs/interfaces/_questdb_nodejs-client.QwpIngressResponse.html index 060c34c0..2a5e33e7 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpIngressResponse.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpIngressResponse.html @@ -1,5 +1,5 @@ -QwpIngressResponse | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressResponse

    interface QwpIngressResponse {
        errorMessage?: string;
        sequence: bigint;
        status: number;
        tables: QwpIngressTableResult[];
    }
    Index

    Properties

    errorMessage? +QwpIngressResponse | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressResponse

    interface QwpIngressResponse {
        errorMessage?: string;
        sequence: bigint;
        status: number;
        tables: QwpIngressTableResult[];
    }
    Index

    Properties

    errorMessage?: string
    sequence: bigint
    status: number
    +

    Properties

    errorMessage?: string
    sequence: bigint
    status: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpIngressServerInfo.html b/docs/interfaces/_questdb_nodejs-client.QwpIngressServerInfo.html index 431a012b..90180e03 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpIngressServerInfo.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpIngressServerInfo.html @@ -1,8 +1,8 @@ QwpIngressServerInfo | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressServerInfo

    What the browser-requested ingress SERVER_INFO frame reports.

    -
    interface QwpIngressServerInfo {
        durableAckEnabled: boolean;
        maxBatchSizeBytes: number;
    }
    Index

    Properties

    interface QwpIngressServerInfo {
        durableAckEnabled: boolean;
        maxBatchSizeBytes: number;
    }
    Index

    Properties

    durableAckEnabled: boolean

    Whether this connection negotiated durable acknowledgements. This is the only durable-ACK verdict a browser can read: the confirmation header is invisible to page JavaScript and the subprotocol echo confirms the negotiation dialect, not the capability.

    -
    maxBatchSizeBytes: number
    +
    maxBatchSizeBytes: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpIngressSymbolDictionaryDelta.html b/docs/interfaces/_questdb_nodejs-client.QwpIngressSymbolDictionaryDelta.html index bbd3c0be..37bc1733 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpIngressSymbolDictionaryDelta.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpIngressSymbolDictionaryDelta.html @@ -1,3 +1,3 @@ -QwpIngressSymbolDictionaryDelta | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressSymbolDictionaryDelta

    interface QwpIngressSymbolDictionaryDelta {
        entries: readonly string[];
        startId: number;
    }
    Index

    Properties

    entries +QwpIngressSymbolDictionaryDelta | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressSymbolDictionaryDelta

    interface QwpIngressSymbolDictionaryDelta {
        entries: readonly string[];
        startId: number;
    }
    Index

    Properties

    Properties

    entries: readonly string[]
    startId: number
    +

    Properties

    entries: readonly string[]
    startId: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpIngressTableResult.html b/docs/interfaces/_questdb_nodejs-client.QwpIngressTableResult.html index a70daea4..e3728516 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpIngressTableResult.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpIngressTableResult.html @@ -1,3 +1,3 @@ -QwpIngressTableResult | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressTableResult

    interface QwpIngressTableResult {
        name: string;
        sequenceTransaction: bigint;
    }
    Index

    Properties

    name +QwpIngressTableResult | QuestDB JavaScript Client - v5.0.0

    Interface QwpIngressTableResult

    interface QwpIngressTableResult {
        name: string;
        sequenceTransaction: bigint;
    }
    Index

    Properties

    name: string
    sequenceTransaction: bigint
    +

    Properties

    name: string
    sequenceTransaction: bigint
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpLong256Value.html b/docs/interfaces/_questdb_nodejs-client.QwpLong256Value.html index 4f4a6920..b9bb2d25 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpLong256Value.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpLong256Value.html @@ -1,3 +1,3 @@ -QwpLong256Value | QuestDB JavaScript Client - v5.0.0

    Interface QwpLong256Value

    interface QwpLong256Value {
        words: readonly [bigint, bigint, bigint, bigint];
    }
    Index

    Properties

    words +QwpLong256Value | QuestDB JavaScript Client - v5.0.0

    Interface QwpLong256Value

    interface QwpLong256Value {
        words: readonly [bigint, bigint, bigint, bigint];
    }
    Index

    Properties

    Properties

    words: readonly [bigint, bigint, bigint, bigint]

    Little-endian 64-bit words; word 0 is least significant.

    -
    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeClientConfigOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeClientConfigOptions.html index 5424a691..4ec55452 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeClientConfigOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeClientConfigOptions.html @@ -1,13 +1,13 @@ QwpNodeClientConfigOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeClientConfigOptions

    Typed overrides for a ws/wss cluster string, in the sections of QwpNodeClientOptions. They take precedence after the complete string has been validated; the endpoints themselves always come from addr.

    -
    interface QwpNodeClientConfigOptions {
        cluster?: Partial<Omit<QwpNodeWebSocketOptions, "url" | "failoverUrls">>;
        egress?: Omit<
            QwpNodeEgressOptions,
            "url"
            | "failoverUrls"
            | "authorization",
        >;
        ingress?: Omit<
            QwpNodeIngressOptions,
            "url"
            | "failoverUrls"
            | "authorization",
        >;
        lazyConnect?: boolean;
        pool?: QwpClientPoolOptions;
    }
    Index

    Properties

    interface QwpNodeClientConfigOptions {
        cluster?: Partial<Omit<QwpNodeWebSocketOptions, "url" | "failoverUrls">>;
        egress?: Omit<
            QwpNodeEgressOptions,
            "url"
            | "failoverUrls"
            | "authorization",
        >;
        ingress?: Omit<
            QwpNodeIngressOptions,
            "url"
            | "failoverUrls"
            | "authorization",
        >;
        lazyConnect?: boolean;
        pool?: QwpClientPoolOptions;
    }
    Index

    Properties

    cluster?: Partial<Omit<QwpNodeWebSocketOptions, "url" | "failoverUrls">>

    Connection overrides both sides share.

    -
    egress?: Omit<QwpNodeEgressOptions, "url" | "failoverUrls" | "authorization">

    Egress overrides.

    -
    ingress?: Omit<QwpNodeIngressOptions, "url" | "failoverUrls" | "authorization">

    Ingress overrides; storeAndForward may supply or override sf_dir.

    -
    lazyConnect?: boolean

    Overrides the lazy_connect key.

    -
    +
    egress?: Omit<QwpNodeEgressOptions, "url" | "failoverUrls" | "authorization">

    Egress overrides.

    +
    ingress?: Omit<QwpNodeIngressOptions, "url" | "failoverUrls" | "authorization">

    Ingress overrides; storeAndForward may supply or override sf_dir.

    +
    lazyConnect?: boolean

    Overrides the lazy_connect key.

    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeClientOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeClientOptions.html index d1b17d73..4e767777 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeClientOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeClientOptions.html @@ -1,7 +1,7 @@ QwpNodeClientOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeClientOptions

    Node configuration for a combined pooled QWP ingress/egress client. One endpoint list and authentication are shared, while side-specific options remain explicit.

    -
    interface QwpNodeClientOptions {
        cluster: QwpNodeWebSocketOptions;
        egress?: Omit<
            QwpNodeEgressOptions,
            "url"
            | "failoverUrls"
            | "authorization",
        >;
        ingress?: Omit<
            QwpNodeIngressOptions,
            "url"
            | "failoverUrls"
            | "authorization",
        >;
        lazyConnect?: boolean;
        pool?: QwpClientPoolOptions;
    }
    Index

    Properties

    interface QwpNodeClientOptions {
        cluster: QwpNodeWebSocketOptions;
        egress?: Omit<
            QwpNodeEgressOptions,
            "url"
            | "failoverUrls"
            | "authorization",
        >;
        ingress?: Omit<
            QwpNodeIngressOptions,
            "url"
            | "failoverUrls"
            | "authorization",
        >;
        lazyConnect?: boolean;
        pool?: QwpClientPoolOptions;
    }
    Index

    Properties

    Properties

    Endpoints, authentication and the connection settings both sides share. Each URL may be an origin, a reverse-proxy base path, or an existing /write/v4 or /read/v1 endpoint; each side derives its own route.

    -
    egress?: Omit<QwpNodeEgressOptions, "url" | "failoverUrls" | "authorization">

    The query sessions' options, on the same terms as ingress.

    -
    ingress?: Omit<QwpNodeIngressOptions, "url" | "failoverUrls" | "authorization">

    The pooled senders' options. url, failoverUrls and authorization +

    egress?: Omit<QwpNodeEgressOptions, "url" | "failoverUrls" | "authorization">

    The query sessions' options, on the same terms as ingress.

    +
    ingress?: Omit<QwpNodeIngressOptions, "url" | "failoverUrls" | "authorization">

    The pooled senders' options. url, failoverUrls and authorization belong to cluster; any other connection setting given here overrides the cluster's for ingress only.

    -
    lazyConnect?: boolean

    Coordinates a non-blocking startup: ingress connects in the background, +

    lazyConnect?: boolean

    Coordinates a non-blocking startup: ingress connects in the background, using memory replay when store-and-forward is absent, and the egress pool remains cold until the first query. Conflicts with a positive queryPoolMin, an ingress initialConnectMode other than async, or ingress reconnect: false. This is the typed spelling of the lazy_connect key, which, as in the Java, Rust and Python clients, only the pooled client applies.

    -
    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeEgressOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeEgressOptions.html index 4cd2f3c8..64d84ba7 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeEgressOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeEgressOptions.html @@ -1,7 +1,7 @@ QwpNodeEgressOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeEgressOptions

    Everything a Node QWP query session takes: the connection, endpoint routing, result compression, and the session's flow control, deadlines and failover.

    -
    interface QwpNodeEgressOptions {
        agent?: Agent;
        authorization?: string;
        authTimeoutMs?: number;
        bufferPoolSize?: number;
        cancelDrainTimeoutMs?: number;
        clientId?: string;
        closeTimeoutMs?: number;
        compression?: QwpEgressCompression;
        compressionLevel?: number;
        connectionListenerInboxCapacity?: number;
        connectTimeoutMs?: number;
        failoverUrls?: readonly (string | URL)[];
        headers?: Record<string, string>;
        initialCredit?: number | bigint;
        maxBatchRows?: number;
        maxVersion?: number;
        onFailoverReset?: (
            event: QwpEgressFailoverResetEvent,
        ) => void | Promise<void>;
        protocols?: string | string[];
        queryTimeoutMs?: number;
        reconnect?: false | QwpEgressReconnectOptions;
        sendTimeoutMs?: number;
        serverInfoTimeoutMs?: number;
        target?: QwpTarget;
        url: string | URL;
        webSocketFactory?: (
            url: string | URL,
            options: {
                agent?: Agent;
                headers: Record<string, string>;
                onConnected: () => void;
                onUpgrade: (headers: IncomingHttpHeaders) => void;
                onUpgradeRejected: (rejection: QwpNodeUpgradeRejection) => void;
                protocols?: string | string[];
            },
        ) => QwpWebSocketLike;
        zone?: string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    interface QwpNodeEgressOptions {
        agent?: Agent;
        authorization?: string;
        authTimeoutMs?: number;
        bufferPoolSize?: number;
        cancelDrainTimeoutMs?: number;
        clientId?: string;
        closeTimeoutMs?: number;
        compression?: QwpEgressCompression;
        compressionLevel?: number;
        connectionListenerInboxCapacity?: number;
        connectTimeoutMs?: number;
        failoverUrls?: readonly (string | URL)[];
        headers?: Record<string, string>;
        initialCredit?: number | bigint;
        maxBatchRows?: number;
        maxVersion?: number;
        onFailoverReset?: (
            event: QwpEgressFailoverResetEvent,
        ) => void | Promise<void>;
        protocols?: string | string[];
        queryTimeoutMs?: number;
        reconnect?: false | QwpEgressReconnectOptions;
        sendTimeoutMs?: number;
        serverInfoTimeoutMs?: number;
        target?: QwpTarget;
        url: string | URL;
        webSocketFactory?: (
            url: string | URL,
            options: {
                agent?: Agent;
                headers: Record<string, string>;
                onConnected: () => void;
                onUpgrade: (headers: IncomingHttpHeaders) => void;
                onUpgradeRejected: (rejection: QwpNodeUpgradeRejection) => void;
                protocols?: string | string[];
            },
        ) => QwpWebSocketLike;
        zone?: string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    agent?: Agent

    Optional HTTP(S) agent used for the WebSocket upgrade.

    -
    authorization?: string
    authTimeoutMs?: number

    Time allowed after TCP/TLS connection for HTTP authentication and the +

    authorization?: string
    authTimeoutMs?: number

    Time allowed after TCP/TLS connection for HTTP authentication and the WebSocket upgrade.

    Defaults to connectTimeoutMs when that is set, and to 15s otherwise, so narrowing only the connect deadline bounds the whole opening rather than being exceeded by a default nobody chose. Set this to give the slower phase its own budget. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    bufferPoolSize?: number

    Maximum decoded batches waiting for a consumer. Defaults to 4.

    -
    cancelDrainTimeoutMs?: number

    Maximum wait for a terminal response after CANCEL, and the grace period of +

    bufferPoolSize?: number

    Maximum decoded batches waiting for a consumer. Defaults to 4.

    +
    cancelDrainTimeoutMs?: number

    Maximum wait for a terminal response after CANCEL, and the grace period of a query timeout: how long an expired query may take to end before its caller is released, and how long its connection may then take to drain it. Defaults to 5 seconds. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    clientId?: string
    closeTimeoutMs?: number

    Maximum time allowed for a graceful WebSocket close. Defaults to 15s. +

    clientId?: string
    closeTimeoutMs?: number

    Maximum time allowed for a graceful WebSocket close. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    compression?: QwpEgressCompression

    Requests Zstd-compressed result batches. The default is raw, which +

    compression?: QwpEgressCompression

    Requests Zstd-compressed result batches. The default is raw, which preserves compatibility with servers that predate QWP compression. auto currently advertises the same ordered preference as zstd.

    -
    compressionLevel?: number

    Zstd level hint sent to the server. Must be between 1 and 22, and only +

    compressionLevel?: number

    Zstd level hint sent to the server. Must be between 1 and 22, and only takes effect alongside compression; the default raw sends no accept-encoding header for a level to travel on.

    -
    connectionListenerInboxCapacity?: number

    Bounded inbox depth for reconnect.onEvent. Defaults to 64, matching +

    connectionListenerInboxCapacity?: number

    Bounded inbox depth for reconnect.onEvent. Defaults to 64, matching ingress. Overflow drops the oldest pending notification.

    -
    connectTimeoutMs?: number

    Node TCP/TLS connection deadline, or the complete opening deadline in a +

    connectTimeoutMs?: number

    Node TCP/TLS connection deadline, or the complete opening deadline in a browser. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    failoverUrls?: readonly (string | URL)[]

    Additional endpoints attempted in order when the preferred endpoint fails.

    -
    headers?: Record<string, string>
    initialCredit?: number | bigint

    Default per-query send-ahead credit. Defaults to zero (unbounded).

    -
    maxBatchRows?: number

    Requests a server-side RESULT_BATCH row cap, and rejects a batch that +

    failoverUrls?: readonly (string | URL)[]

    Additional endpoints attempted in order when the preferred endpoint fails.

    +
    headers?: Record<string, string>
    initialCredit?: number | bigint

    Default per-query send-ahead credit. Defaults to zero (unbounded).

    +
    maxBatchRows?: number

    Requests a server-side RESULT_BATCH row cap, and rejects a batch that declares more rows: decoder scratch is sized from the declared row count and retained for the session's lifetime.

    -
    maxVersion?: number
    onFailoverReset?: (event: QwpEgressFailoverResetEvent) => void | Promise<void>

    Default notification immediately before an active query is re-executed. +

    maxVersion?: number
    onFailoverReset?: (event: QwpEgressFailoverResetEvent) => void | Promise<void>

    Default notification immediately before an active query is re-executed. Not-yet-consumed batches are discarded automatically; callers that retain an already-consumed prefix should discard it here. A query's own onFailoverReset overrides this callback, which is important for pooled sessions whose request IDs may overlap.

    -
    protocols?: string | string[]
    queryTimeoutMs?: number

    Default per-query timeout, measured from the query() call. Zero or +

    protocols?: string | string[]
    queryTimeoutMs?: number

    Default per-query timeout, measured from the query() call. Zero or undefined disables query timeouts. Once it expires no further batch is delivered and the query is cancelled; see QwpEgressQueryOptions.timeoutMs for how the outcome is reported. The connect-string key is query_timeout_ms. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    reconnect?: false | QwpEgressReconnectOptions

    Bounded failover policy. Failover and at-least-once active-query replay +

    reconnect?: false | QwpEgressReconnectOptions

    Bounded failover policy. Failover and at-least-once active-query replay are enabled by default; set false to keep one fixed connection.

    -
    sendTimeoutMs?: number

    Maximum time a send may remain queued by the WebSocket. Defaults to 15s. +

    sendTimeoutMs?: number

    Maximum time a send may remain queued by the WebSocket. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    serverInfoTimeoutMs?: number

    SERVER_INFO handshake deadline. Defaults to 5 seconds. Capped at +

    serverInfoTimeoutMs?: number

    SERVER_INFO handshake deadline. Defaults to 5 seconds. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    target?: QwpTarget

    Selects any readable node, a primary/standalone node, or a replica.

    -
    url: string | URL
    webSocketFactory?: (
        url: string | URL,
        options: {
            agent?: Agent;
            headers: Record<string, string>;
            onConnected: () => void;
            onUpgrade: (headers: IncomingHttpHeaders) => void;
            onUpgradeRejected: (rejection: QwpNodeUpgradeRejection) => void;
            protocols?: string | string[];
        },
    ) => QwpWebSocketLike

    Test hook; defaults to the Node-only ws implementation.

    -
    zone?: string

    Opaque, case-insensitive preferred zone; cross-zone fallback stays enabled.

    -
    +
    target?: QwpTarget

    Selects any readable node, a primary/standalone node, or a replica.

    +
    url: string | URL
    webSocketFactory?: (
        url: string | URL,
        options: {
            agent?: Agent;
            headers: Record<string, string>;
            onConnected: () => void;
            onUpgrade: (headers: IncomingHttpHeaders) => void;
            onUpgradeRejected: (rejection: QwpNodeUpgradeRejection) => void;
            protocols?: string | string[];
        },
    ) => QwpWebSocketLike

    Test hook; defaults to the Node-only ws implementation.

    +
    zone?: string

    Opaque, case-insensitive preferred zone; cross-zone fallback stays enabled.

    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeIngressOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeIngressOptions.html index dfe05f36..a0e40586 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeIngressOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeIngressOptions.html @@ -4,7 +4,7 @@

    There is no target or zone. Only the primary accepts writes, and the endpoint sweep reaches it through the 421 each replica answers the upgrade with; both route query sessions, on QwpNodeEgressOptions.

    -
    interface QwpNodeIngressOptions {
        ackTimeoutMs?: number;
        agent?: Agent;
        authorization?: string;
        authTimeoutMs?: number;
        autoFlush?: boolean;
        autoFlushBytes?: number;
        autoFlushIntervalMs?: number;
        autoFlushRows?: number;
        clientId?: string;
        closeFlushTimeoutMs?: number;
        closeTimeoutMs?: number;
        connectionListenerInboxCapacity?: number;
        connectTimeoutMs?: number;
        durableAckKeepaliveMs?: number;
        errorInboxCapacity?: number;
        failoverUrls?: readonly (string | URL)[];
        gorilla?: boolean;
        headers?: Record<string, string>;
        initialConnectMode?: QwpInitialConnectMode;
        log?: QwpSenderLogger;
        maxBatchSizeBytes?: number;
        maxNameLength?: number;
        maxVersion?: number;
        memoryReplayAppendDeadlineMs?: number;
        memoryReplayMaxBytes?: number;
        onDurableAck?: (response: QwpIngressResponse) => void;
        onError?: (event: QwpIngressErrorEvent) => void;
        onProgress?: (event: QwpIngressProgressEvent) => void;
        onResponse?: (response: QwpIngressResponse) => void;
        onSenderError?: (error: QwpSenderError) => void;
        protocols?: string | string[];
        reconnect?: false | QwpIngressReconnectOptions;
        requestDurableAck?: boolean;
        senderId?: string;
        sendTimeoutMs?: number;
        storeAndForward?: QwpNodeStoreAndForwardOptions;
        symbolDictionary?: "full" | "delta";
        transactional?: boolean;
        url: string | URL;
        webSocketFactory?: (
            url: string | URL,
            options: {
                agent?: Agent;
                headers: Record<string, string>;
                onConnected: () => void;
                onUpgrade: (headers: IncomingHttpHeaders) => void;
                onUpgradeRejected: (rejection: QwpNodeUpgradeRejection) => void;
                protocols?: string | string[];
            },
        ) => QwpWebSocketLike;
    }

    Hierarchy (View Summary)

    Index

    Properties

    interface QwpNodeIngressOptions {
        ackTimeoutMs?: number;
        agent?: Agent;
        authorization?: string;
        authTimeoutMs?: number;
        autoFlush?: boolean;
        autoFlushBytes?: number;
        autoFlushIntervalMs?: number;
        autoFlushRows?: number;
        clientId?: string;
        closeFlushTimeoutMs?: number;
        closeTimeoutMs?: number;
        connectionListenerInboxCapacity?: number;
        connectTimeoutMs?: number;
        durableAckKeepaliveMs?: number;
        errorInboxCapacity?: number;
        failoverUrls?: readonly (string | URL)[];
        gorilla?: boolean;
        headers?: Record<string, string>;
        initialConnectMode?: QwpInitialConnectMode;
        log?: QwpSenderLogger;
        maxBatchSizeBytes?: number;
        maxNameLength?: number;
        maxVersion?: number;
        memoryReplayAppendDeadlineMs?: number;
        memoryReplayMaxBytes?: number;
        onDurableAck?: (response: QwpIngressResponse) => void;
        onError?: (event: QwpIngressErrorEvent) => void;
        onProgress?: (event: QwpIngressProgressEvent) => void;
        onResponse?: (response: QwpIngressResponse) => void;
        onSenderError?: (error: QwpSenderError) => void;
        protocols?: string | string[];
        reconnect?: false | QwpIngressReconnectOptions;
        requestDurableAck?: boolean;
        senderId?: string;
        sendTimeoutMs?: number;
        storeAndForward?: QwpNodeStoreAndForwardOptions;
        symbolDictionary?: "full" | "delta";
        transactional?: boolean;
        url: string | URL;
        webSocketFactory?: (
            url: string | URL,
            options: {
                agent?: Agent;
                headers: Record<string, string>;
                onConnected: () => void;
                onUpgrade: (headers: IncomingHttpHeaders) => void;
                onUpgradeRejected: (rejection: QwpNodeUpgradeRejection) => void;
                protocols?: string | string[];
            },
        ) => QwpWebSocketLike;
    }

    Hierarchy (View Summary)

    Index

    Properties

    ackTimeoutMs? agent? authorization? authTimeoutMs? @@ -48,47 +48,47 @@ how long a wait may go without the ACK watermark advancing. Defaults to 15 seconds. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    agent?: Agent

    Optional HTTP(S) agent used for the WebSocket upgrade.

    -
    authorization?: string
    authTimeoutMs?: number

    Time allowed after TCP/TLS connection for HTTP authentication and the +

    agent?: Agent

    Optional HTTP(S) agent used for the WebSocket upgrade.

    +
    authorization?: string
    authTimeoutMs?: number

    Time allowed after TCP/TLS connection for HTTP authentication and the WebSocket upgrade.

    Defaults to connectTimeoutMs when that is set, and to 15s otherwise, so narrowing only the connect deadline bounds the whole opening rather than being exceeded by a default nobody chose. Set this to give the slower phase its own budget. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    autoFlush?: boolean
    autoFlushBytes?: number

    Soft threshold for estimated buffered column bytes. Zero disables the byte +

    autoFlush?: boolean
    autoFlushBytes?: number

    Soft threshold for estimated buffered column bytes. Zero disables the byte trigger. Defaults to zero and is clamped below a connected server's batch cap; exact encoded frames remain subject to the protocol batch limit.

    -
    autoFlushIntervalMs?: number

    Not capped at the host timer ceiling: compared against elapsed time only.

    -
    autoFlushRows?: number
    clientId?: string
    closeFlushTimeoutMs?: number

    Maximum time close() spends publishing queued rows and waiting for the +

    autoFlushIntervalMs?: number

    Not capped at the host timer ceiling: compared against elapsed time only.

    +
    autoFlushRows?: number
    clientId?: string
    closeFlushTimeoutMs?: number

    Maximum time close() spends publishing queued rows and waiting for the server ACK watermark. Zero or a negative value skips the ACK wait, but RAM-backed frames still have up to 5 seconds to reach the socket before close() reports a timeout; if the session can no longer send them at all, close() rejects with its failure. Defaults to 5 seconds. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    closeTimeoutMs?: number

    Maximum time allowed for a graceful WebSocket close. Defaults to 15s. +

    closeTimeoutMs?: number

    Maximum time allowed for a graceful WebSocket close. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    connectionListenerInboxCapacity?: number

    Bounded reconnect-listener inbox. Oldest pending events are dropped when +

    connectionListenerInboxCapacity?: number

    Bounded reconnect-listener inbox. Oldest pending events are dropped when full. Defaults to 64, matching the Java client.

    -
    connectTimeoutMs?: number

    Node TCP/TLS connection deadline, or the complete opening deadline in a +

    connectTimeoutMs?: number

    Node TCP/TLS connection deadline, or the complete opening deadline in a browser. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    durableAckKeepaliveMs?: number

    Durable-ACK keepalive interval. While committed table transactions await +

    durableAckKeepaliveMs?: number

    Durable-ACK keepalive interval. While committed table transactions await durable upload, Node transports send WebSocket PING frames and browser transports send table-less QWP poll frames. Takes effect only with requestDurableAck: true, where it defaults to 200ms; otherwise it is ignored, as in the Java and Rust clients. Zero disables the keepalive but still tracks durable progress. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    errorInboxCapacity?: number

    Bounded typed/legacy error inbox. Oldest pending errors are dropped when +

    errorInboxCapacity?: number

    Bounded typed/legacy error inbox. Oldest pending errors are dropped when full. Defaults to 256, matching the Java client.

    -
    failoverUrls?: readonly (string | URL)[]

    Additional endpoints attempted in order when the preferred endpoint fails.

    -
    gorilla?: boolean

    Gorilla-compresses TIMESTAMP and TIMESTAMP_NANOS columns; a column whose +

    failoverUrls?: readonly (string | URL)[]

    Additional endpoints attempted in order when the preferred endpoint fails.

    +
    gorilla?: boolean

    Gorilla-compresses TIMESTAMP and TIMESTAMP_NANOS columns; a column whose deltas the encoding cannot represent is sent raw. Defaults to true. UDP senders always disable it.

    -
    headers?: Record<string, string>
    initialConnectMode?: QwpInitialConnectMode

    Startup policy when no server is reachable; the typed spelling of the +

    headers?: Record<string, string>
    initialConnectMode?: QwpInitialConnectMode

    Startup policy when no server is reachable; the typed spelling of the initial_connect_retry configuration-string key.

    • "off" makes one pass over the endpoints and fails fast.
    • @@ -105,15 +105,15 @@ reconnectInitialBackoffMs or reconnectMaxBackoffMs is set. "sync" and "async" require reconnection, so they cannot be combined with reconnect: false.

      -
    maxBatchSizeBytes?: number

    Optional local ingress frame cap. Browsers cannot read WebSocket upgrade +

    maxBatchSizeBytes?: number

    Optional local ingress frame cap. Browsers cannot read WebSocket upgrade headers, so browser applications should set this to the server's configured QWP cap. When the server also advertises a cap, the smaller value wins. Table batches are split at row boundaries automatically; an individual row that cannot fit is rejected with QwpBatchTooLargeError before it is sent.

    -
    maxNameLength?: number

    Maximum UTF-8 byte length of table and column names. Defaults to 127.

    -
    maxVersion?: number
    memoryReplayAppendDeadlineMs?: number

    Maximum time a memory replay append waits for ACK-driven trimming after +

    maxNameLength?: number

    Maximum UTF-8 byte length of table and column names. Defaults to 127.

    +
    maxVersion?: number
    memoryReplayAppendDeadlineMs?: number

    Maximum time a memory replay append waits for ACK-driven trimming after reaching memoryReplayMaxBytes. Defaults to 30 seconds.

    -
    memoryReplayMaxBytes?: number

    Target cap for the built-in memory-only replay queue. Each queued frame +

    memoryReplayMaxBytes?: number

    Target cap for the built-in memory-only replay queue. Each queued frame counts its payload plus 1 KiB for the bookkeeping it keeps in memory, so the cap bounds the memory a backlog of small frames takes as well; the default holds about 127,000 one-row frames. Defaults to 128 MiB. A @@ -124,13 +124,13 @@ trim frames awaiting durability. This applies in browsers and non-persistent Node sessions; a Node store-and-forward journal is bounded by its own maxBytes instead.

    -
    onDurableAck?: (response: QwpIngressResponse) => void
    onError?: (event: QwpIngressErrorEvent) => void

    Server rejections and terminal session failures. A waitForAck() that times +

    onDurableAck?: (response: QwpIngressResponse) => void
    onError?: (event: QwpIngressErrorEvent) => void

    Server rejections and terminal session failures. A waitForAck() that times out is reported only to its caller.

    -
    onProgress?: (event: QwpIngressProgressEvent) => void

    Monotonic send/accept/durability notifications. Callback errors are ignored.

    -
    onResponse?: (response: QwpIngressResponse) => void
    onSenderError?: (error: QwpSenderError) => void

    Java-parity typed server-rejection and data-loss notifications. When +

    onProgress?: (event: QwpIngressProgressEvent) => void

    Monotonic send/accept/durability notifications. Callback errors are ignored.

    +
    onResponse?: (response: QwpIngressResponse) => void
    onSenderError?: (error: QwpSenderError) => void

    Java-parity typed server-rejection and data-loss notifications. When omitted, the default handler logs retriable errors at warn and terminal errors or abandoned data at error.

    -
    protocols?: string | string[]
    reconnect?: false | QwpIngressReconnectOptions

    Reconnection and at-least-once replay policy. Reconnection is +

    protocols?: string | string[]
    reconnect?: false | QwpIngressReconnectOptions

    Reconnection and at-least-once replay policy. Reconnection is enabled by default for factory-created sessions; set false to keep one fixed connection. Browser and non-persistent Node replay is memory-only. When initialConnectMode is not set, the first connect is a single attempt @@ -142,25 +142,25 @@

    An ACK lost during disconnect can cause a frame to be replayed after the server accepted it; configure server-side deduplication when duplicates are not acceptable.

    -
    requestDurableAck?: boolean

    Requests durable ACKs on the /write/v4 upgrade; connecting fails with +

    requestDurableAck?: boolean

    Requests durable ACKs on the /write/v4 upgrade; connecting fails with QwpDurableAckUnavailableError when the server does not confirm them. durableAckKeepaliveMs takes effect only alongside it.

    -
    senderId?: string

    Names this sender's journal slot below storeAndForward.directory, the +

    senderId?: string

    Names this sender's journal slot below storeAndForward.directory, the slot root: the journal is <directory>/<senderId>, and a pooled client's are <directory>/<senderId>-<slot>. Defaults to default, as the sender_id key does. Letters, digits, underscores and hyphens only; it is not sent to the server.

    -
    sendTimeoutMs?: number

    Maximum time a send may remain queued by the WebSocket. Defaults to 15s. +

    sendTimeoutMs?: number

    Maximum time a send may remain queued by the WebSocket. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -

    Upgrades the default in-memory ingress replay to persistent Node +

    Upgrades the default in-memory ingress replay to persistent Node store-and-forward, journalled in this sender's senderId slot below the configured directory. No two live senders may share a slot.

    -
    symbolDictionary?: "full" | "delta"

    Connection-scoped symbol dictionary deltas are the default; full opts +

    symbolDictionary?: "full" | "delta"

    Connection-scoped symbol dictionary deltas are the default; full opts out, so every frame carries its own dictionaries. UDP senders always use full.

    -
    transactional?: boolean

    Keep auto-flushed rows in an open server-side transaction. An explicit +

    transactional?: boolean

    Keep auto-flushed rows in an open server-side transaction. An explicit flush() closes the transaction. QWP transactions are atomic per table, rather than across every table in a multi-table flush.

    -
    url: string | URL
    webSocketFactory?: (
        url: string | URL,
        options: {
            agent?: Agent;
            headers: Record<string, string>;
            onConnected: () => void;
            onUpgrade: (headers: IncomingHttpHeaders) => void;
            onUpgradeRejected: (rejection: QwpNodeUpgradeRejection) => void;
            protocols?: string | string[];
        },
    ) => QwpWebSocketLike

    Test hook; defaults to the Node-only ws implementation.

    -
    +
    url: string | URL
    webSocketFactory?: (
        url: string | URL,
        options: {
            agent?: Agent;
            headers: Record<string, string>;
            onConnected: () => void;
            onUpgrade: (headers: IncomingHttpHeaders) => void;
            onUpgradeRejected: (rejection: QwpNodeUpgradeRejection) => void;
            protocols?: string | string[];
        },
    ) => QwpWebSocketLike

    Test hook; defaults to the Node-only ws implementation.

    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeOrphanDrainEvent.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeOrphanDrainEvent.html index 9dd72313..5acd9937 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeOrphanDrainEvent.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeOrphanDrainEvent.html @@ -1,4 +1,4 @@ -QwpNodeOrphanDrainEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeOrphanDrainEvent

    interface QwpNodeOrphanDrainEvent {
        attempt?: number;
        directory?: string;
        episodeMs?: number;
        error?: Error;
        kind: QwpNodeOrphanDrainEventKind;
        metrics: QwpNodeOrphanDrainerMetrics;
        senderError?: QwpSenderError;
        timestampMs: number;
    }
    Index

    Properties

    attempt? +QwpNodeOrphanDrainEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeOrphanDrainEvent

    interface QwpNodeOrphanDrainEvent {
        attempt?: number;
        directory?: string;
        episodeMs?: number;
        error?: Error;
        kind: QwpNodeOrphanDrainEventKind;
        metrics: QwpNodeOrphanDrainerMetrics;
        senderError?: QwpSenderError;
        timestampMs: number;
    }
    Index

    Properties

    attempt?: number

    One-based attempt in the current capability/topology episode.

    -
    directory?: string
    episodeMs?: number

    Elapsed time in the current consecutive capability-gap episode.

    -
    error?: Error
    senderError?: QwpSenderError

    Present when a failed slot has been abandoned behind its sentinel.

    -
    timestampMs: number
    +
    directory?: string
    episodeMs?: number

    Elapsed time in the current consecutive capability-gap episode.

    +
    error?: Error
    senderError?: QwpSenderError

    Present when a failed slot has been abandoned behind its sentinel.

    +
    timestampMs: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeOrphanDrainerMetrics.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeOrphanDrainerMetrics.html index 27cf28c0..623a7f4f 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeOrphanDrainerMetrics.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeOrphanDrainerMetrics.html @@ -1,4 +1,4 @@ -QwpNodeOrphanDrainerMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeOrphanDrainerMetrics

    interface QwpNodeOrphanDrainerMetrics {
        active: number;
        closed: boolean;
        closing: boolean;
        deliveredErrorNotifications: number;
        deliveredNotifications: number;
        discovered: number;
        drained: number;
        droppedErrorNotifications: number;
        droppedNotifications: number;
        failed: number;
        locked: number;
        queued: number;
        retrying: number;
        scanFailures: number;
        scans: number;
    }
    Index

    Properties

    active +QwpNodeOrphanDrainerMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeOrphanDrainerMetrics

    interface QwpNodeOrphanDrainerMetrics {
        active: number;
        closed: boolean;
        closing: boolean;
        deliveredErrorNotifications: number;
        deliveredNotifications: number;
        discovered: number;
        drained: number;
        droppedErrorNotifications: number;
        droppedNotifications: number;
        failed: number;
        locked: number;
        queued: number;
        retrying: number;
        scanFailures: number;
        scans: number;
    }
    Index

    Properties

    active: number
    closed: boolean
    closing: boolean
    deliveredErrorNotifications: number
    deliveredNotifications: number
    discovered: number
    drained: number
    droppedErrorNotifications: number
    droppedNotifications: number
    failed: number
    locked: number
    queued: number
    retrying: number

    Transient drain or terminal-marker writes awaiting retry.

    -
    scanFailures: number
    scans: number
    +

    Properties

    active: number
    closed: boolean
    closing: boolean
    deliveredErrorNotifications: number
    deliveredNotifications: number
    discovered: number
    drained: number
    droppedErrorNotifications: number
    droppedNotifications: number
    failed: number
    locked: number
    queued: number
    retrying: number

    Transient drain or terminal-marker writes awaiting retry.

    +
    scanFailures: number
    scans: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeReplayDataLossReport.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeReplayDataLossReport.html index 6b0f1231..e7fab5d2 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeReplayDataLossReport.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeReplayDataLossReport.html @@ -2,12 +2,12 @@ failing recovery when the damage sits in the active segment, matching the Java client, which zeroes an active torn tail by policy and reports the residue through a WARN plus MmapSegment.tornTailBytes().

    -
    interface QwpNodeReplayDataLossReport {
        directory: string;
        discardedBytes: number;
        reason: string;
        segmentFile: string;
    }
    Index

    Properties

    interface QwpNodeReplayDataLossReport {
        directory: string;
        discardedBytes: number;
        reason: string;
        segmentFile: string;
    }
    Index

    Properties

    directory: string
    discardedBytes: number

    Bytes at and after the damaged record that recovery could not retain.

    +

    Properties

    directory: string
    discardedBytes: number

    Bytes at and after the damaged record that recovery could not retain.

    Zero means a loss was detected whose extent the journal cannot measure -- a segment whose records are gone leaves nothing to count. Treat it as "unknown", not as "nothing lost", and read reason.

    -
    reason: string
    segmentFile: string
    +
    reason: string
    segmentFile: string
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeReplayRecoveryEvent.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeReplayRecoveryEvent.html index 246c6b48..cf9358ff 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeReplayRecoveryEvent.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeReplayRecoveryEvent.html @@ -1,7 +1,7 @@ QwpNodeReplayRecoveryEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeReplayRecoveryEvent

    Notification that an unreplayable foreground slot was preserved aside.

    -
    interface QwpNodeReplayRecoveryEvent {
        directory: string;
        error: QwpReplayStoreQuarantinedError;
        quarantineDirectory: string;
        senderError: QwpSenderError;
        timestampMs: number;
    }
    Index

    Properties

    interface QwpNodeReplayRecoveryEvent {
        directory: string;
        error: QwpReplayStoreQuarantinedError;
        quarantineDirectory: string;
        senderError: QwpSenderError;
        timestampMs: number;
    }
    Index

    Properties

    directory: string
    quarantineDirectory: string
    senderError: QwpSenderError
    timestampMs: number
    +

    Properties

    directory: string
    quarantineDirectory: string
    senderError: QwpSenderError
    timestampMs: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeStoreAndForwardOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeStoreAndForwardOptions.html index c55994eb..fa0a846d 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeStoreAndForwardOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeStoreAndForwardOptions.html @@ -1,7 +1,7 @@ QwpNodeStoreAndForwardOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeStoreAndForwardOptions

    Node store-and-forward: a crash-safe journal that keeps each frame on disk until the server acknowledges it, and the recovery of journals that terminated producers left behind.

    -
    interface QwpNodeStoreAndForwardOptions {
        appendDeadlineMs?: number;
        backpressurePolicy?: QwpSfBackpressurePolicy;
        catchUpCapGapMinEscalationWindowMs?: number;
        checkpointIntervalMs?: number;
        directory: string;
        drainOrphans?: boolean;
        durability?: QwpSfDurability;
        maxBackgroundDrainers?: number;
        maxBytes?: number;
        maxSegmentBytes?: number;
        onOrphanDrainEvent?: (event: QwpNodeOrphanDrainEvent) => void;
        onRecoveryDataLoss?: (report: QwpNodeReplayDataLossReport) => void;
        onRecoveryQuarantine?: (event: QwpNodeReplayRecoveryEvent) => void;
        orphanScanIntervalMs?: number;
    }
    Index

    Properties

    interface QwpNodeStoreAndForwardOptions {
        appendDeadlineMs?: number;
        backpressurePolicy?: QwpSfBackpressurePolicy;
        catchUpCapGapMinEscalationWindowMs?: number;
        checkpointIntervalMs?: number;
        directory: string;
        drainOrphans?: boolean;
        durability?: QwpSfDurability;
        maxBackgroundDrainers?: number;
        maxBytes?: number;
        maxSegmentBytes?: number;
        onOrphanDrainEvent?: (event: QwpNodeOrphanDrainEvent) => void;
        onRecoveryDataLoss?: (report: QwpNodeReplayDataLossReport) => void;
        onRecoveryQuarantine?: (event: QwpNodeReplayRecoveryEvent) => void;
        orphanScanIntervalMs?: number;
    }
    Index

    Properties

    appendDeadlineMs?: number

    Per-append capacity or retryable store-fault deadline. Defaults to 30 seconds.

    -
    backpressurePolicy?: QwpSfBackpressurePolicy

    Behavior when maxBytes is exhausted. wait pauses the append until ACK +

    backpressurePolicy?: QwpSfBackpressurePolicy

    Behavior when maxBytes is exhausted. wait pauses the append until ACK trimming frees space or its deadline expires; error fails it at once with QwpReplayStoreFullError. Defaults to wait, as a connect string does.

    This decides journal exhaustion only. A transient retryable fault parks until appendDeadlineMs under either policy, so the only errors an append surfaces are exhaustion and that deadline.

    -
    catchUpCapGapMinEscalationWindowMs?: number

    Minimum time an orphan slot's symbol catch-up cap gap must persist before +

    catchUpCapGapMinEscalationWindowMs?: number

    Minimum time an orphan slot's symbol catch-up cap gap must persist before it is quarantined. The gap must also be observed 16 times. Defaults to five minutes; zero uses the observation threshold alone.

    -
    checkpointIntervalMs?: number

    Periodic durability checkpoint cadence. Defaults to 5 seconds.

    -
    directory: string

    The slot root. Each sender journals into its own slot below it: +

    checkpointIntervalMs?: number

    Periodic durability checkpoint cadence. Defaults to 5 seconds.

    +
    directory: string

    The slot root. Each sender journals into its own slot below it: <directory>/<senderId>, with senderId defaulting to default, or <directory>/<senderId>-<slot> for a pooled sender. This is the layout sf_dir and sender_id describe in a connect string.

    -
    drainOrphans?: boolean

    Adopts sibling replay slots left by terminated producers. Standalone +

    drainOrphans?: boolean

    Adopts sibling replay slots left by terminated producers. Standalone senders default this to false; pooled clients always recover their own idle in-range and out-of-range <senderId>-N slots.

    -
    durability?: QwpSfDurability

    Local persistence barrier. append fsyncs every frame before its append +

    durability?: QwpSfDurability

    Local persistence barrier. append fsyncs every frame before its append resolves, periodic checkpoints dirty files in the background, and memory relies on OS page-cache writeback, which normally survives a process failure but makes no power-loss promise. Defaults to memory, as sf_durability does; choose append for a journal that has to survive power loss.

    -
    maxBackgroundDrainers?: number

    Maximum sibling slots drained concurrently. Defaults to 4.

    -
    maxBytes?: number

    Target maximum journal size including fixed segment reservations and +

    maxBackgroundDrainers?: number

    Maximum sibling slots drained concurrently. Defaults to 4.

    +
    maxBytes?: number

    Target maximum journal size including fixed segment reservations and symbol metadata. Defaults to 10 GiB. The current symbol dictionary may exceed this target so it cannot consume the journal's live frame budget before a drained close retires that dictionary generation.

    @@ -57,19 +57,19 @@ 24-byte SFA header and the 8-byte frame header. A smaller target throws a RangeError, because no append could ever reserve its first segment and no acknowledgement could ever free room for one.

    -
    maxSegmentBytes?: number

    Maximum QWP frame payload and target segment data size. Each fixed segment +

    maxSegmentBytes?: number

    Maximum QWP frame payload and target segment data size. Each fixed segment reserves this value plus one record header and its 24-byte SFA header, so a maximum-sized frame still fits. Defaults to 4 MiB. maxBytes must leave room for one whole segment of this size plus those 32 bytes of headers.

    -
    onOrphanDrainEvent?: (event: QwpNodeOrphanDrainEvent) => void

    Receives isolated scanner, drainer, durable-ACK capability-gap, and +

    onOrphanDrainEvent?: (event: QwpNodeOrphanDrainEvent) => void

    Receives isolated scanner, drainer, durable-ACK capability-gap, and primary-unavailable lifecycle notifications.

    -
    onRecoveryDataLoss?: (report: QwpNodeReplayDataLossReport) => void

    Reports journal bytes abandoned during recovery. Defaults to logging at +

    onRecoveryDataLoss?: (report: QwpNodeReplayDataLossReport) => void

    Reports journal bytes abandoned during recovery. Defaults to logging at error level; recovery still succeeds, so this must never be silent.

    -
    onRecoveryQuarantine?: (event: QwpNodeReplayRecoveryEvent) => void

    Receives a data-loss notification when corrupt foreground replay bytes are +

    onRecoveryQuarantine?: (event: QwpNodeReplayRecoveryEvent) => void

    Receives a data-loss notification when corrupt foreground replay bytes are preserved under an .unreplayable-N pathname and a fresh slot is opened.

    -
    orphanScanIntervalMs?: number

    Periodic rescan cadence; zero disables the timer. Pooled ownership +

    orphanScanIntervalMs?: number

    Periodic rescan cadence; zero disables the timer. Pooled ownership changes can still trigger a scan. Defaults to 30 seconds. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeUdpOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeUdpOptions.html index b277c509..5e2a0892 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeUdpOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeUdpOptions.html @@ -1,7 +1,7 @@ QwpNodeUdpOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeUdpOptions

    Everything a Node QWP-over-UDP sender takes: the datagram socket and row buffering. Every datagram is self-contained and none is ever part of a transaction, so the sender's transactional and encoding options are absent.

    -
    interface QwpNodeUdpOptions {
        autoFlush?: boolean;
        autoFlushBytes?: number;
        autoFlushIntervalMs?: number;
        autoFlushRows?: number;
        closeFlushTimeoutMs?: number;
        host: string;
        log?: QwpSenderLogger;
        maxDatagramSize?: number;
        maxNameLength?: number;
        multicastInterface?: string;
        multicastTtl?: number;
        onError?: (error: Error) => void;
        port?: number;
        socketFactory?: () => QwpNodeUdpSocketLike;
    }

    Hierarchy

    • Omit<QwpSenderOptions, "transactional" | "gorilla" | "symbolDictionary">
      • QwpNodeUdpOptions
    Index

    Properties

    interface QwpNodeUdpOptions {
        autoFlush?: boolean;
        autoFlushBytes?: number;
        autoFlushIntervalMs?: number;
        autoFlushRows?: number;
        closeFlushTimeoutMs?: number;
        host: string;
        log?: QwpSenderLogger;
        maxDatagramSize?: number;
        maxNameLength?: number;
        multicastInterface?: string;
        multicastTtl?: number;
        onError?: (error: Error) => void;
        port?: number;
        socketFactory?: () => QwpNodeUdpSocketLike;
    }

    Hierarchy

    • Omit<QwpSenderOptions, "transactional" | "gorilla" | "symbolDictionary">
      • QwpNodeUdpOptions
    Index

    Properties

    autoFlush?: boolean
    autoFlushBytes?: number

    Soft threshold for estimated buffered column bytes; zero disables the +

    Properties

    autoFlush?: boolean
    autoFlushBytes?: number

    Soft threshold for estimated buffered column bytes; zero disables the byte trigger. Defaults to maxDatagramSize.

    -
    autoFlushIntervalMs?: number

    Not capped at the host timer ceiling: compared against elapsed time only.

    -
    autoFlushRows?: number
    closeFlushTimeoutMs?: number

    Maximum time close() spends publishing queued rows and waiting for the +

    autoFlushIntervalMs?: number

    Not capped at the host timer ceiling: compared against elapsed time only.

    +
    autoFlushRows?: number
    closeFlushTimeoutMs?: number

    Maximum time close() spends publishing queued rows and waiting for the server ACK watermark. Zero or a negative value skips the ACK wait, but RAM-backed frames still have up to 5 seconds to reach the socket before close() reports a timeout; if the session can no longer send them at all, close() rejects with its failure. Defaults to 5 seconds. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    host: string

    Destination hostname or IPv4 address.

    -
    maxDatagramSize?: number

    Maximum encoded datagram size. Defaults to 1400 bytes.

    -
    maxNameLength?: number

    Maximum UTF-8 byte length of table and column names. Defaults to 127.

    -
    multicastInterface?: string

    Optional local IPv4 interface used for multicast traffic.

    -
    multicastTtl?: number

    IPv4 multicast TTL from 0 through 255. Defaults to 0.

    -
    onError?: (error: Error) => void

    Receives isolated local socket errors; UDP has no server acknowledgement.

    -
    port?: number

    Destination port. Defaults to the Java QWP UDP port, 9007.

    -
    socketFactory?: () => QwpNodeUdpSocketLike

    Test hook.

    -
    +
    host: string

    Destination hostname or IPv4 address.

    +
    maxDatagramSize?: number

    Maximum encoded datagram size. Defaults to 1400 bytes.

    +
    maxNameLength?: number

    Maximum UTF-8 byte length of table and column names. Defaults to 127.

    +
    multicastInterface?: string

    Optional local IPv4 interface used for multicast traffic.

    +
    multicastTtl?: number

    IPv4 multicast TTL from 0 through 255. Defaults to 0.

    +
    onError?: (error: Error) => void

    Receives isolated local socket errors; UDP has no server acknowledgement.

    +
    port?: number

    Destination port. Defaults to the Java QWP UDP port, 9007.

    +
    socketFactory?: () => QwpNodeUdpSocketLike

    Test hook.

    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeUdpSocketLike.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeUdpSocketLike.html index 51d632ec..c283e32a 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeUdpSocketLike.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeUdpSocketLike.html @@ -1,8 +1,8 @@ QwpNodeUdpSocketLike | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeUdpSocketLike

    Minimal injectable UDP socket surface used by the Node QWP sender.

    -
    interface QwpNodeUdpSocketLike {
        bind(port: number, address: string, callback: () => void): void;
        close(callback: () => void): void;
        on(event: "error", listener: (error: Error) => void): unknown;
        send(
            message: Uint8Array,
            port: number,
            address: string,
            callback: (error: Error, bytes: number) => void,
        ): void;
        setMulticastInterface(multicastInterface: string): void;
        setMulticastTTL(ttl: number): number;
    }
    Index

    Methods

    interface QwpNodeUdpSocketLike {
        bind(port: number, address: string, callback: () => void): void;
        close(callback: () => void): void;
        on(event: "error", listener: (error: Error) => void): unknown;
        send(
            message: Uint8Array,
            port: number,
            address: string,
            callback: (error: Error, bytes: number) => void,
        ): void;
        setMulticastInterface(multicastInterface: string): void;
        setMulticastTTL(ttl: number): number;
    }
    Index

    Methods

    • Parameters

      • message: Uint8Array
      • port: number
      • address: string
      • callback: (error: Error, bytes: number) => void

      Returns void

    +

    Methods

    • Parameters

      • message: Uint8Array
      • port: number
      • address: string
      • callback: (error: Error, bytes: number) => void

      Returns void

    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeUpgradeRejection.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeUpgradeRejection.html index 7777ddf5..383a91d9 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeUpgradeRejection.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeUpgradeRejection.html @@ -1,4 +1,4 @@ -QwpNodeUpgradeRejection | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeUpgradeRejection

    interface QwpNodeUpgradeRejection {
        headers: IncomingHttpHeaders;
        statusCode: number;
        statusMessage?: string;
    }
    Index

    Properties

    headers +QwpNodeUpgradeRejection | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeUpgradeRejection

    interface QwpNodeUpgradeRejection {
        headers: IncomingHttpHeaders;
        statusCode: number;
        statusMessage?: string;
    }
    Index

    Properties

    headers: IncomingHttpHeaders
    statusCode: number
    statusMessage?: string
    +

    Properties

    headers: IncomingHttpHeaders
    statusCode: number
    statusMessage?: string
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpNodeWebSocketOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpNodeWebSocketOptions.html index 1d8aa124..c581a9e7 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpNodeWebSocketOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpNodeWebSocketOptions.html @@ -1,7 +1,7 @@ QwpNodeWebSocketOptions | QuestDB JavaScript Client - v5.0.0

    Interface QwpNodeWebSocketOptions

    Node WebSocket connection settings: endpoints, upgrade headers, the TLS agent, authentication and opening deadlines. A pooled client's cluster takes these, and the ingress and egress options extend them.

    -
    interface QwpNodeWebSocketOptions {
        agent?: Agent;
        authorization?: string;
        authTimeoutMs?: number;
        clientId?: string;
        closeTimeoutMs?: number;
        connectTimeoutMs?: number;
        failoverUrls?: readonly (string | URL)[];
        headers?: Record<string, string>;
        maxVersion?: number;
        protocols?: string | string[];
        sendTimeoutMs?: number;
        url: string | URL;
        webSocketFactory?: (
            url: string | URL,
            options: {
                agent?: Agent;
                headers: Record<string, string>;
                onConnected: () => void;
                onUpgrade: (headers: IncomingHttpHeaders) => void;
                onUpgradeRejected: (rejection: QwpNodeUpgradeRejection) => void;
                protocols?: string | string[];
            },
        ) => QwpWebSocketLike;
    }

    Hierarchy (View Summary)

    Index

    Properties

    interface QwpNodeWebSocketOptions {
        agent?: Agent;
        authorization?: string;
        authTimeoutMs?: number;
        clientId?: string;
        closeTimeoutMs?: number;
        connectTimeoutMs?: number;
        failoverUrls?: readonly (string | URL)[];
        headers?: Record<string, string>;
        maxVersion?: number;
        protocols?: string | string[];
        sendTimeoutMs?: number;
        url: string | URL;
        webSocketFactory?: (
            url: string | URL,
            options: {
                agent?: Agent;
                headers: Record<string, string>;
                onConnected: () => void;
                onUpgrade: (headers: IncomingHttpHeaders) => void;
                onUpgradeRejected: (rejection: QwpNodeUpgradeRejection) => void;
                protocols?: string | string[];
            },
        ) => QwpWebSocketLike;
    }

    Hierarchy (View Summary)

    Index

    Properties

    agent?: Agent

    Optional HTTP(S) agent used for the WebSocket upgrade.

    -
    authorization?: string
    authTimeoutMs?: number

    Time allowed after TCP/TLS connection for HTTP authentication and the +

    authorization?: string
    authTimeoutMs?: number

    Time allowed after TCP/TLS connection for HTTP authentication and the WebSocket upgrade.

    Defaults to connectTimeoutMs when that is set, and to 15s otherwise, so narrowing only the connect deadline bounds the whole opening rather than being exceeded by a default nobody chose. Set this to give the slower phase its own budget. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    clientId?: string
    closeTimeoutMs?: number

    Maximum time allowed for a graceful WebSocket close. Defaults to 15s. +

    clientId?: string
    closeTimeoutMs?: number

    Maximum time allowed for a graceful WebSocket close. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    connectTimeoutMs?: number

    Node TCP/TLS connection deadline, or the complete opening deadline in a +

    connectTimeoutMs?: number

    Node TCP/TLS connection deadline, or the complete opening deadline in a browser. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    failoverUrls?: readonly (string | URL)[]

    Additional endpoints attempted in order when the preferred endpoint fails.

    -
    headers?: Record<string, string>
    maxVersion?: number
    protocols?: string | string[]
    sendTimeoutMs?: number

    Maximum time a send may remain queued by the WebSocket. Defaults to 15s. +

    failoverUrls?: readonly (string | URL)[]

    Additional endpoints attempted in order when the preferred endpoint fails.

    +
    headers?: Record<string, string>
    maxVersion?: number
    protocols?: string | string[]
    sendTimeoutMs?: number

    Maximum time a send may remain queued by the WebSocket. Defaults to 15s. Capped at 2,147,483,647ms (the host timer ceiling); a larger value throws a RangeError.

    -
    url: string | URL
    webSocketFactory?: (
        url: string | URL,
        options: {
            agent?: Agent;
            headers: Record<string, string>;
            onConnected: () => void;
            onUpgrade: (headers: IncomingHttpHeaders) => void;
            onUpgradeRejected: (rejection: QwpNodeUpgradeRejection) => void;
            protocols?: string | string[];
        },
    ) => QwpWebSocketLike

    Test hook; defaults to the Node-only ws implementation.

    -
    +
    url: string | URL
    webSocketFactory?: (
        url: string | URL,
        options: {
            agent?: Agent;
            headers: Record<string, string>;
            onConnected: () => void;
            onUpgrade: (headers: IncomingHttpHeaders) => void;
            onUpgradeRejected: (rejection: QwpNodeUpgradeRejection) => void;
            protocols?: string | string[];
        },
    ) => QwpWebSocketLike

    Test hook; defaults to the Node-only ws implementation.

    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpPoolSlotReservation.html b/docs/interfaces/_questdb_nodejs-client.QwpPoolSlotReservation.html index 1725dc25..53cb1953 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpPoolSlotReservation.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpPoolSlotReservation.html @@ -1,5 +1,5 @@ QwpPoolSlotReservation | QuestDB JavaScript Client - v5.0.0

    Interface QwpPoolSlotReservationInternal

    Cross-owner reservation for stable pooled sender slot indexes.

    -
    interface QwpPoolSlotReservation {
        onAvailable(listener: () => void): () => void;
        release(slot: number): void;
        tryReserve(slot: number): boolean;
    }
    Index

    Methods

    interface QwpPoolSlotReservation {
        onAvailable(listener: () => void): () => void;
        release(slot: number): void;
        tryReserve(slot: number): boolean;
    }
    Index

    Methods

    +

    Methods

    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpQueryErrorMessage.html b/docs/interfaces/_questdb_nodejs-client.QwpQueryErrorMessage.html index 9c1e8fcc..103c4bf6 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpQueryErrorMessage.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpQueryErrorMessage.html @@ -1,4 +1,4 @@ -QwpQueryErrorMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpQueryErrorMessage

    interface QwpQueryErrorMessage {
        flags: number;
        kind: "query-error";
        message: string;
        payloadLength: number;
        requestId: bigint;
        status: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags +QwpQueryErrorMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpQueryErrorMessage

    interface QwpQueryErrorMessage {
        flags: number;
        kind: "query-error";
        message: string;
        payloadLength: number;
        requestId: bigint;
        status: number;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    flags: number
    kind: "query-error"
    message: string
    payloadLength: number
    requestId: bigint
    status: number
    tableCount: number
    version: number
    +

    Properties

    flags: number
    kind: "query-error"
    message: string
    payloadLength: number
    requestId: bigint
    status: number
    tableCount: number
    version: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpQueryRequest.html b/docs/interfaces/_questdb_nodejs-client.QwpQueryRequest.html index 22ee7277..15d548f7 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpQueryRequest.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpQueryRequest.html @@ -1,4 +1,4 @@ -QwpQueryRequest | QuestDB JavaScript Client - v5.0.0

    Interface QwpQueryRequest

    interface QwpQueryRequest {
        bindCount?: number;
        bindPayload?: Uint8Array;
        binds?: QwpBindSetter;
        initialCredit?: number | bigint;
        queryFlags?: number | bigint;
        requestId: number | bigint;
        sql: string;
    }
    Index

    Properties

    bindCount? +QwpQueryRequest | QuestDB JavaScript Client - v5.0.0

    Interface QwpQueryRequest

    interface QwpQueryRequest {
        bindCount?: number;
        bindPayload?: Uint8Array;
        binds?: QwpBindSetter;
        initialCredit?: number | bigint;
        queryFlags?: number | bigint;
        requestId: number | bigint;
        sql: string;
    }
    Index

    Properties

    bindCount?: number

    Advanced escape hatch for an already encoded bind section.

    -
    bindPayload?: Uint8Array

    Advanced escape hatch for an already encoded bind section.

    -

    Browser-safe typed positional binds.

    -
    initialCredit?: number | bigint

    Zero means unbounded.

    -
    queryFlags?: number | bigint

    Append only after SERVER_INFO advertises QUERY_FLAGS.

    -
    requestId: number | bigint
    sql: string
    +
    bindPayload?: Uint8Array

    Advanced escape hatch for an already encoded bind section.

    +

    Browser-safe typed positional binds.

    +
    initialCredit?: number | bigint

    Zero means unbounded.

    +
    queryFlags?: number | bigint

    Append only after SERVER_INFO advertises QUERY_FLAGS.

    +
    requestId: number | bigint
    sql: string
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpReconnectEvent.html b/docs/interfaces/_questdb_nodejs-client.QwpReconnectEvent.html index 9f5d709b..fda71bef 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpReconnectEvent.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpReconnectEvent.html @@ -1,4 +1,4 @@ -QwpReconnectEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpReconnectEvent

    interface QwpReconnectEvent {
        attempt: number;
        cause?: unknown;
        endpoint?: string | URL;
        episodeMs?: number;
        kind: QwpReconnectEventKind;
        previousEndpoint?: string | URL;
        timestampMs: number;
    }
    Index

    Properties

    attempt +QwpReconnectEvent | QuestDB JavaScript Client - v5.0.0

    Interface QwpReconnectEvent

    interface QwpReconnectEvent {
        attempt: number;
        cause?: unknown;
        endpoint?: string | URL;
        episodeMs?: number;
        kind: QwpReconnectEventKind;
        previousEndpoint?: string | URL;
        timestampMs: number;
    }
    Index

    Properties

    attempt: number

    One-based reconnect sweep number; zero for lifecycle-only events.

    -
    cause?: unknown
    endpoint?: string | URL

    The endpoint the event concerns; for all-endpoints-unreachable, the last +

    cause?: unknown
    endpoint?: string | URL

    The endpoint the event concerns; for all-endpoints-unreachable, the last endpoint the sweep tried.

    -
    episodeMs?: number

    Elapsed time in the current consecutive capability-gap episode.

    -
    previousEndpoint?: string | URL
    timestampMs: number
    +
    episodeMs?: number

    Elapsed time in the current consecutive capability-gap episode.

    +
    previousEndpoint?: string | URL
    timestampMs: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpResourcePoolMetrics.html b/docs/interfaces/_questdb_nodejs-client.QwpResourcePoolMetrics.html index 0e22f7d3..cc642ce5 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpResourcePoolMetrics.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpResourcePoolMetrics.html @@ -1,8 +1,8 @@ -QwpResourcePoolMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpResourcePoolMetrics

    interface QwpResourcePoolMetrics {
        available: number;
        creating: number;
        leased: number;
        maximum: number;
        minimum: number;
        total: number;
        waiting: number;
    }
    Index

    Properties

    available +QwpResourcePoolMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpResourcePoolMetrics

    interface QwpResourcePoolMetrics {
        available: number;
        creating: number;
        leased: number;
        maximum: number;
        minimum: number;
        total: number;
        waiting: number;
    }
    Index

    Properties

    available: number
    creating: number
    leased: number
    maximum: number
    minimum: number
    total: number
    waiting: number
    +

    Properties

    available: number
    creating: number
    leased: number
    maximum: number
    minimum: number
    total: number
    waiting: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpResultArrayValue.html b/docs/interfaces/_questdb_nodejs-client.QwpResultArrayValue.html index 7f5b3af5..054ff486 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpResultArrayValue.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpResultArrayValue.html @@ -1,3 +1,3 @@ -QwpResultArrayValue | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultArrayValue

    interface QwpResultArrayValue {
        dimensions: readonly number[];
        values: readonly number[] | readonly bigint[];
    }
    Index

    Properties

    dimensions +QwpResultArrayValue | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultArrayValue

    interface QwpResultArrayValue {
        dimensions: readonly number[];
        values: readonly number[] | readonly bigint[];
    }
    Index

    Properties

    Properties

    dimensions: readonly number[]
    values: readonly number[] | readonly bigint[]
    +

    Properties

    dimensions: readonly number[]
    values: readonly number[] | readonly bigint[]
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpResultBatchMessage.html b/docs/interfaces/_questdb_nodejs-client.QwpResultBatchMessage.html index 429c8cfe..cf4d394f 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpResultBatchMessage.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpResultBatchMessage.html @@ -1,4 +1,4 @@ -QwpResultBatchMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultBatchMessage

    interface QwpResultBatchMessage {
        batchSequence: bigint;
        body: Uint8Array;
        flags: number;
        kind: "result-batch";
        payloadLength: number;
        requestId: bigint;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    batchSequence +QwpResultBatchMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultBatchMessage

    interface QwpResultBatchMessage {
        batchSequence: bigint;
        body: Uint8Array;
        flags: number;
        kind: "result-batch";
        payloadLength: number;
        requestId: bigint;
        tableCount: number;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    batchSequence: bigint
    body: Uint8Array

    Raw or Zstd-compressed delta dictionary and columnar table block; decoded +

    Properties

    batchSequence: bigint
    body: Uint8Array

    Raw or Zstd-compressed delta dictionary and columnar table block; decoded by the batch decoder according to the frame flags.

    -
    flags: number
    kind: "result-batch"
    payloadLength: number
    requestId: bigint
    tableCount: number
    version: number
    +
    flags: number
    kind: "result-batch"
    payloadLength: number
    requestId: bigint
    tableCount: number
    version: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpResultColumn.html b/docs/interfaces/_questdb_nodejs-client.QwpResultColumn.html index 5bf06e8b..80a7e734 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpResultColumn.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpResultColumn.html @@ -1,6 +1,6 @@ -QwpResultColumn | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultColumn

    interface QwpResultColumn {
        name: string;
        precisionBits?: number;
        scale?: number;
        type: QwpColumnType;
        values: readonly QwpResultValue[];
    }

    Hierarchy (View Summary)

    Index

    Properties

    name +QwpResultColumn | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultColumn

    interface QwpResultColumn {
        name: string;
        precisionBits?: number;
        scale?: number;
        type: QwpColumnType;
        values: readonly QwpResultValue[];
    }

    Hierarchy (View Summary)

    Index

    Properties

    name: string
    precisionBits?: number
    scale?: number
    values: readonly QwpResultValue[]
    +

    Properties

    name: string
    precisionBits?: number
    scale?: number
    values: readonly QwpResultValue[]
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpResultColumnSchema.html b/docs/interfaces/_questdb_nodejs-client.QwpResultColumnSchema.html index f2c087d7..9ebc56ec 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpResultColumnSchema.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpResultColumnSchema.html @@ -1,3 +1,3 @@ -QwpResultColumnSchema | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultColumnSchema

    interface QwpResultColumnSchema {
        name: string;
        type: QwpColumnType;
    }

    Hierarchy (View Summary)

    Index

    Properties

    name +QwpResultColumnSchema | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultColumnSchema

    interface QwpResultColumnSchema {
        name: string;
        type: QwpColumnType;
    }

    Hierarchy (View Summary)

    Index

    Properties

    Properties

    name: string
    +

    Properties

    name: string
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpResultEndMessage.html b/docs/interfaces/_questdb_nodejs-client.QwpResultEndMessage.html index 473465b6..0bf09ff9 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpResultEndMessage.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpResultEndMessage.html @@ -1,4 +1,4 @@ -QwpResultEndMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultEndMessage

    interface QwpResultEndMessage {
        finalSequence: bigint;
        flags: number;
        kind: "result-end";
        payloadLength: number;
        requestId: bigint;
        tableCount: number;
        totalRows: bigint;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    finalSequence +QwpResultEndMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpResultEndMessage

    interface QwpResultEndMessage {
        finalSequence: bigint;
        flags: number;
        kind: "result-end";
        payloadLength: number;
        requestId: bigint;
        tableCount: number;
        totalRows: bigint;
        version: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    finalSequence: bigint
    flags: number
    kind: "result-end"
    payloadLength: number
    requestId: bigint
    tableCount: number
    totalRows: bigint
    version: number
    +

    Properties

    finalSequence: bigint
    flags: number
    kind: "result-end"
    payloadLength: number
    requestId: bigint
    tableCount: number
    totalRows: bigint
    version: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpRoutingOptions.html b/docs/interfaces/_questdb_nodejs-client.QwpRoutingOptions.html index 667075fd..74fbb319 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpRoutingOptions.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpRoutingOptions.html @@ -3,8 +3,8 @@ or a primary still catching up, answers the /write/v4 upgrade with 421 and the role it holds, and the endpoint sweep moves on, so a sender reaches the primary whatever role or zone it could ask for.

    -
    interface QwpRoutingOptions {
        target?: QwpTarget;
        zone?: string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    interface QwpRoutingOptions {
        target?: QwpTarget;
        zone?: string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    Properties

    target?: QwpTarget

    Selects any readable node, a primary/standalone node, or a replica.

    -
    zone?: string

    Opaque, case-insensitive preferred zone; cross-zone fallback stays enabled.

    -
    +
    zone?: string

    Opaque, case-insensitive preferred zone; cross-zone fallback stays enabled.

    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpSenderError.html b/docs/interfaces/_questdb_nodejs-client.QwpSenderError.html index 2390cbeb..e96c3dd7 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpSenderError.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpSenderError.html @@ -1,5 +1,5 @@ QwpSenderError | QuestDB JavaScript Client - v5.0.0

    Interface QwpSenderError

    Immutable Java-parity context for an ingress rejection or data loss.

    -
    interface QwpSenderError {
        appliedPolicy: QwpSenderErrorPolicy;
        category: QwpSenderErrorCategory;
        detectedAtMs: number;
        fromFsn?: bigint;
        messageSequence?: bigint;
        quarantinedPath?: string;
        serverMessage?: string;
        serverStatusByte?: number;
        tableName?: string;
        toFsn?: bigint;
    }
    Index

    Properties

    interface QwpSenderError {
        appliedPolicy: QwpSenderErrorPolicy;
        category: QwpSenderErrorCategory;
        detectedAtMs: number;
        fromFsn?: bigint;
        messageSequence?: bigint;
        quarantinedPath?: string;
        serverMessage?: string;
        serverStatusByte?: number;
        tableName?: string;
        toFsn?: bigint;
    }
    Index

    Properties

    appliedPolicy: QwpSenderErrorPolicy
    detectedAtMs: number
    fromFsn?: bigint

    Inclusive stable store-and-forward frame-sequence range.

    -
    messageSequence?: bigint
    quarantinedPath?: string

    Preserved on-disk bytes for a data-loss/quarantine notification.

    -
    serverMessage?: string
    serverStatusByte?: number
    tableName?: string
    toFsn?: bigint
    +

    Properties

    appliedPolicy: QwpSenderErrorPolicy
    detectedAtMs: number
    fromFsn?: bigint

    Inclusive stable store-and-forward frame-sequence range.

    +
    messageSequence?: bigint
    quarantinedPath?: string

    Preserved on-disk bytes for a data-loss/quarantine notification.

    +
    serverMessage?: string
    serverStatusByte?: number
    tableName?: string
    toFsn?: bigint
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpSenderErrorResponseContext.html b/docs/interfaces/_questdb_nodejs-client.QwpSenderErrorResponseContext.html index c943d1b3..4a67733f 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpSenderErrorResponseContext.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpSenderErrorResponseContext.html @@ -1,7 +1,7 @@ -QwpSenderErrorResponseContext | QuestDB JavaScript Client - v5.0.0

    Interface QwpSenderErrorResponseContext

    interface QwpSenderErrorResponseContext {
        appliedPolicy?: QwpSenderErrorPolicy;
        detectedAtMs?: number;
        fromFsn?: bigint;
        messageSequence?: bigint;
        tableName?: string;
        toFsn?: bigint;
    }
    Index

    Properties

    appliedPolicy? +QwpSenderErrorResponseContext | QuestDB JavaScript Client - v5.0.0

    Interface QwpSenderErrorResponseContext

    interface QwpSenderErrorResponseContext {
        appliedPolicy?: QwpSenderErrorPolicy;
        detectedAtMs?: number;
        fromFsn?: bigint;
        messageSequence?: bigint;
        tableName?: string;
        toFsn?: bigint;
    }
    Index

    Properties

    appliedPolicy?: QwpSenderErrorPolicy
    detectedAtMs?: number
    fromFsn?: bigint
    messageSequence?: bigint
    tableName?: string
    toFsn?: bigint
    +

    Properties

    appliedPolicy?: QwpSenderErrorPolicy
    detectedAtMs?: number
    fromFsn?: bigint
    messageSequence?: bigint
    tableName?: string
    toFsn?: bigint
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpSenderMetrics.html b/docs/interfaces/_questdb_nodejs-client.QwpSenderMetrics.html index 3cecb1bb..b6d46b82 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpSenderMetrics.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpSenderMetrics.html @@ -1,5 +1,5 @@ QwpSenderMetrics | QuestDB JavaScript Client - v5.0.0

    Interface QwpSenderMetrics

    Immutable high-level sender counters plus the active ingress snapshot.

    -
    interface QwpSenderMetrics {
        autoFlushBytes: number;
        closed: boolean;
        closing: boolean;
        connected: boolean;
        deferredRows: number;
        effectiveAutoFlushBytes: number;
        ingress?: QwpIngressMetrics;
        pendingBytes: number;
        pendingRows: number;
        totalFlushes: number;
        totalFlushFailures: number;
        totalRowsPublished: number;
        totalRowsStaged: number;
        totalTransactionsCommitted: number;
    }
    Index

    Properties

    interface QwpSenderMetrics {
        autoFlushBytes: number;
        closed: boolean;
        closing: boolean;
        connected: boolean;
        deferredRows: number;
        effectiveAutoFlushBytes: number;
        ingress?: QwpIngressMetrics;
        pendingBytes: number;
        pendingRows: number;
        totalFlushes: number;
        totalFlushFailures: number;
        totalRowsPublished: number;
        totalRowsStaged: number;
        totalTransactionsCommitted: number;
    }
    Index

    Properties

    autoFlushBytes: number
    closed: boolean
    closing: boolean
    connected: boolean
    deferredRows: number
    effectiveAutoFlushBytes: number
    pendingBytes: number

    Estimated raw column-buffer bytes currently staged.

    -
    pendingRows: number
    totalFlushes: number
    totalFlushFailures: number
    totalRowsPublished: number

    Rows whose encoded frames have entered the ingress session.

    -
    totalRowsStaged: number
    totalTransactionsCommitted: number
    +

    Properties

    autoFlushBytes: number
    closed: boolean
    closing: boolean
    connected: boolean
    deferredRows: number
    effectiveAutoFlushBytes: number
    pendingBytes: number

    Estimated raw column-buffer bytes currently staged.

    +
    pendingRows: number
    totalFlushes: number
    totalFlushFailures: number
    totalRowsPublished: number

    Rows whose encoded frames have entered the ingress session.

    +
    totalRowsStaged: number
    totalTransactionsCommitted: number
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpServerInfoMessage.html b/docs/interfaces/_questdb_nodejs-client.QwpServerInfoMessage.html index d4d4a3d6..ea5979fb 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpServerInfoMessage.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpServerInfoMessage.html @@ -1,5 +1,5 @@ QwpServerInfoMessage | QuestDB JavaScript Client - v5.0.0

    Interface QwpServerInfoMessage

    Immutable endpoint metadata from the most recent successful egress bind.

    -
    interface QwpServerInfoMessage {
        capabilities: number;
        clusterId: string;
        compressionCodec: number;
        compressionLevel: number;
        epoch: bigint;
        flags: number;
        kind: "server-info";
        nodeId: string;
        payloadLength: number;
        role: number;
        serverWallNanoseconds: bigint;
        tableCount: number;
        version: number;
        zoneId: string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    interface QwpServerInfoMessage {
        capabilities: number;
        clusterId: string;
        compressionCodec: number;
        compressionLevel: number;
        epoch: bigint;
        flags: number;
        kind: "server-info";
        nodeId: string;
        payloadLength: number;
        role: number;
        serverWallNanoseconds: bigint;
        tableCount: number;
        version: number;
        zoneId: string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    capabilities: number
    clusterId: string
    compressionCodec: number
    compressionLevel: number
    epoch: bigint
    flags: number
    kind: "server-info"
    nodeId: string
    payloadLength: number
    role: number
    serverWallNanoseconds: bigint
    tableCount: number
    version: number
    zoneId: string
    +

    Properties

    capabilities: number
    clusterId: string
    compressionCodec: number
    compressionLevel: number
    epoch: bigint
    flags: number
    kind: "server-info"
    nodeId: string
    payloadLength: number
    role: number
    serverWallNanoseconds: bigint
    tableCount: number
    version: number
    zoneId: string
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpSymbolValue.html b/docs/interfaces/_questdb_nodejs-client.QwpSymbolValue.html index 68c35665..a8740ddd 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpSymbolValue.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpSymbolValue.html @@ -1,3 +1,3 @@ -QwpSymbolValue | QuestDB JavaScript Client - v5.0.0

    Interface QwpSymbolValue

    interface QwpSymbolValue {
        id: number;
        text: string;
    }
    Index

    Properties

    id +QwpSymbolValue | QuestDB JavaScript Client - v5.0.0

    Interface QwpSymbolValue

    interface QwpSymbolValue {
        id: number;
        text: string;
    }
    Index

    Properties

    Properties

    id: number
    text: string
    +

    Properties

    id: number
    text: string
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpUpgradeErrorDetails.html b/docs/interfaces/_questdb_nodejs-client.QwpUpgradeErrorDetails.html index 634de25e..c57bf580 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpUpgradeErrorDetails.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpUpgradeErrorDetails.html @@ -1,4 +1,4 @@ -QwpUpgradeErrorDetails | QuestDB JavaScript Client - v5.0.0

    Interface QwpUpgradeErrorDetails

    interface QwpUpgradeErrorDetails {
        cause?: unknown;
        closeCode?: number;
        kind: QwpUpgradeErrorKind;
        retryable?: boolean;
        serverRole?: string;
        serverZone?: string;
        statusCode?: number;
        statusMessage?: string;
        timeoutPhase?: QwpUpgradeTimeoutPhase;
        tryNextEndpoint?: boolean;
        url?: string | URL;
    }
    Index

    Properties

    cause? +QwpUpgradeErrorDetails | QuestDB JavaScript Client - v5.0.0

    Interface QwpUpgradeErrorDetails

    interface QwpUpgradeErrorDetails {
        cause?: unknown;
        closeCode?: number;
        kind: QwpUpgradeErrorKind;
        retryable?: boolean;
        serverRole?: string;
        serverZone?: string;
        statusCode?: number;
        statusMessage?: string;
        timeoutPhase?: QwpUpgradeTimeoutPhase;
        tryNextEndpoint?: boolean;
        url?: string | URL;
    }
    Index

    Properties

    cause?: unknown
    closeCode?: number
    retryable?: boolean

    Whether a later retry against the configured endpoint set may recover.

    -
    serverRole?: string
    serverZone?: string
    statusCode?: number
    statusMessage?: string
    timeoutPhase?: QwpUpgradeTimeoutPhase
    tryNextEndpoint?: boolean

    Whether failover code should try another endpoint before surfacing this.

    -
    url?: string | URL
    +

    Properties

    cause?: unknown
    closeCode?: number
    retryable?: boolean

    Whether a later retry against the configured endpoint set may recover.

    +
    serverRole?: string
    serverZone?: string
    statusCode?: number
    statusMessage?: string
    timeoutPhase?: QwpUpgradeTimeoutPhase
    tryNextEndpoint?: boolean

    Whether failover code should try another endpoint before surfacing this.

    +
    url?: string | URL
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpUuidValue.html b/docs/interfaces/_questdb_nodejs-client.QwpUuidValue.html index 1d797fb1..2d782c73 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpUuidValue.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpUuidValue.html @@ -1,3 +1,3 @@ -QwpUuidValue | QuestDB JavaScript Client - v5.0.0
    interface QwpUuidValue {
        high: bigint;
        low: bigint;
    }
    Index

    Properties

    high +QwpUuidValue | QuestDB JavaScript Client - v5.0.0
    interface QwpUuidValue {
        high: bigint;
        low: bigint;
    }
    Index

    Properties

    Properties

    high: bigint
    low: bigint
    +

    Properties

    high: bigint
    low: bigint
    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpWebSocketLike.html b/docs/interfaces/_questdb_nodejs-client.QwpWebSocketLike.html index f77bc657..2e5360d7 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpWebSocketLike.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpWebSocketLike.html @@ -1,4 +1,4 @@ -QwpWebSocketLike | QuestDB JavaScript Client - v5.0.0

    Interface QwpWebSocketLike

    interface QwpWebSocketLike {
        binaryType: string;
        bufferedAmount?: number;
        protocol?: string;
        readyState: number;
        addEventListener(
            type: "open",
            listener: (event: unknown) => void,
            options?: { once?: boolean },
        ): void;
        addEventListener(
            type: "message",
            listener: (event: QwpWebSocketMessageEvent) => void,
        ): void;
        addEventListener(
            type: "error",
            listener: (event: unknown) => void,
            options?: { once?: boolean },
        ): void;
        addEventListener(
            type: "close",
            listener: (event: QwpWebSocketCloseEvent) => void,
            options?: { once?: boolean },
        ): void;
        close(code?: number, reason?: string): void;
        ping(): void;
        removeEventListener(type: "open", listener: (event: unknown) => void): void;
        removeEventListener(
            type: "message",
            listener: (event: QwpWebSocketMessageEvent) => void,
        ): void;
        removeEventListener(
            type: "error",
            listener: (event: unknown) => void,
        ): void;
        removeEventListener(
            type: "close",
            listener: (event: QwpWebSocketCloseEvent) => void,
        ): void;
        send(data: Uint8Array): void;
        sendWithCallback(data: Uint8Array, callback: (error?: Error) => void): void;
        terminate(): void;
    }
    Index

    Properties

    binaryType +QwpWebSocketLike | QuestDB JavaScript Client - v5.0.0

    Interface QwpWebSocketLike

    interface QwpWebSocketLike {
        binaryType: string;
        bufferedAmount?: number;
        protocol?: string;
        readyState: number;
        addEventListener(
            type: "open",
            listener: (event: unknown) => void,
            options?: { once?: boolean },
        ): void;
        addEventListener(
            type: "message",
            listener: (event: QwpWebSocketMessageEvent) => void,
        ): void;
        addEventListener(
            type: "error",
            listener: (event: unknown) => void,
            options?: { once?: boolean },
        ): void;
        addEventListener(
            type: "close",
            listener: (event: QwpWebSocketCloseEvent) => void,
            options?: { once?: boolean },
        ): void;
        close(code?: number, reason?: string): void;
        ping(): void;
        removeEventListener(type: "open", listener: (event: unknown) => void): void;
        removeEventListener(
            type: "message",
            listener: (event: QwpWebSocketMessageEvent) => void,
        ): void;
        removeEventListener(
            type: "error",
            listener: (event: unknown) => void,
        ): void;
        removeEventListener(
            type: "close",
            listener: (event: QwpWebSocketCloseEvent) => void,
        ): void;
        send(data: Uint8Array): void;
        sendWithCallback(data: Uint8Array, callback: (error?: Error) => void): void;
        terminate(): void;
    }
    Index

    Properties

    binaryType: string
    bufferedAmount?: number

    Number of application bytes queued by WHATWG-compatible WebSockets.

    -
    protocol?: string

    WebSocket subprotocol selected by the server, or an empty string.

    -
    readyState: number

    Methods

    +

    Properties

    binaryType: string
    bufferedAmount?: number

    Number of application bytes queued by WHATWG-compatible WebSockets.

    +
    protocol?: string

    WebSocket subprotocol selected by the server, or an empty string.

    +
    readyState: number

    Methods

    diff --git a/docs/interfaces/_questdb_nodejs-client.QwpWriterColumn.html b/docs/interfaces/_questdb_nodejs-client.QwpWriterColumn.html index c46f090a..f914daa0 100644 --- a/docs/interfaces/_questdb_nodejs-client.QwpWriterColumn.html +++ b/docs/interfaces/_questdb_nodejs-client.QwpWriterColumn.html @@ -1,5 +1,5 @@ QwpWriterColumn | QuestDB JavaScript Client - v5.0.0

    Interface QwpWriterColumn<T, DesignatedTimestamp>

    A reusable, immutable column definition for a compiled QWP table writer.

    -
    interface QwpWriterColumn<T, DesignatedTimestamp extends boolean = false> {
        __qwpWriterInput?: T;
        designatedTimestamp: DesignatedTimestamp;
        kind: QwpWriterColumnKind;
        precisionBits?: number;
        scale?: number;
        unit?: QwpTimestampUnit;
    }

    Type Parameters

    • T
    • DesignatedTimestamp extends boolean = false
    Index

    Properties

    interface QwpWriterColumn<T, DesignatedTimestamp extends boolean = false> {
        __qwpWriterInput?: T;
        designatedTimestamp: DesignatedTimestamp;
        kind: QwpWriterColumnKind;
        precisionBits?: number;
        scale?: number;
        unit?: QwpTimestampUnit;
    }

    Type Parameters

    • T
    • DesignatedTimestamp extends boolean = false
    Index

    Properties

    __qwpWriterInput? designatedTimestamp kind precisionBits? @@ -14,6 +14,6 @@ silently accept anything. A shared property name resolves structurally across bundles, which is what keeps row typing alive for consumers of the published package.

    -
    designatedTimestamp: DesignatedTimestamp
    precisionBits?: number

    GEOHASH precision in bits, fixed for the whole column.

    -
    scale?: number

    DECIMAL scale, fixed for the whole column.

    -
    +
    designatedTimestamp: DesignatedTimestamp
    precisionBits?: number

    GEOHASH precision in bits, fixed for the whole column.

    +
    scale?: number

    DECIMAL scale, fixed for the whole column.

    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.SenderBuffer.html b/docs/interfaces/_questdb_nodejs-client.SenderBuffer.html index 7184df37..084f1334 100644 --- a/docs/interfaces/_questdb_nodejs-client.SenderBuffer.html +++ b/docs/interfaces/_questdb_nodejs-client.SenderBuffer.html @@ -1,6 +1,6 @@ SenderBuffer | QuestDB JavaScript Client - v5.0.0

    Buffer used by the Sender for data serialization.
    Provides methods for writing different data types into the buffer.

    -
    interface SenderBuffer {
        arrayColumn(name: string, value: unknown[]): SenderBuffer;
        at(timestamp: number | bigint, unit?: TimestampUnit): void;
        atNow(): void;
        booleanColumn(name: string, value: boolean): SenderBuffer;
        currentPosition(): number;
        decimalColumn(
            name: string,
            unscaled: bigint | Int8Array<ArrayBufferLike>,
            scale: number,
        ): SenderBuffer;
        decimalColumnText(name: string, value: string | number): SenderBuffer;
        floatColumn(name: string, value: number): SenderBuffer;
        intColumn(name: string, value: number | bigint): SenderBuffer;
        reset(): SenderBuffer;
        stringColumn(name: string, value: string): SenderBuffer;
        symbol(name: string, value: unknown): SenderBuffer;
        table(table: string): SenderBuffer;
        timestampColumn(
            name: string,
            value: number | bigint,
            unit?: TimestampUnit,
        ): SenderBuffer;
        toBufferNew(pos?: number): Buffer<ArrayBufferLike>;
        toBufferView(pos?: number): Buffer;
    }
    Index

    Methods

    interface SenderBuffer {
        arrayColumn(name: string, value: unknown[]): SenderBuffer;
        at(timestamp: number | bigint, unit?: TimestampUnit): void;
        atNow(): void;
        booleanColumn(name: string, value: boolean): SenderBuffer;
        currentPosition(): number;
        decimalColumn(
            name: string,
            unscaled: bigint | Int8Array<ArrayBufferLike>,
            scale: number,
        ): SenderBuffer;
        decimalColumnText(name: string, value: string | number): SenderBuffer;
        floatColumn(name: string, value: number): SenderBuffer;
        intColumn(name: string, value: number | bigint): SenderBuffer;
        reset(): SenderBuffer;
        stringColumn(name: string, value: string): SenderBuffer;
        symbol(name: string, value: unknown): SenderBuffer;
        table(table: string): SenderBuffer;
        timestampColumn(
            name: string,
            value: number | bigint,
            unit?: TimestampUnit,
        ): SenderBuffer;
        toBufferNew(pos?: number): Buffer<ArrayBufferLike>;
        toBufferView(pos?: number): Buffer;
    }
    Index

    Methods

    arrayColumn at atNow booleanColumn @@ -26,7 +26,7 @@
  • or the shape of the array is irregular: the length of sub-arrays are different
  • or the array is not homogeneous: its elements are not all the same type
  • -
    • Closes the row after writing the designated timestamp into the buffer.

      Precision rules:

      • Protocol v2 and higher: @@ -56,17 +56,17 @@

      If the row cannot be closed within max_buf_size. The partial close is rewound, so the same call succeeds once a flush() frees space.

      -
    • Writes a boolean column with its value into the buffer. Use it to insert into BOOLEAN columns.

      Parameters

      • name: string

        Column name.

      • value: boolean

        Column value, accepts only boolean values. A null or undefined value omits the column entirely (stored as NULL).

      Returns SenderBuffer

      Returns with a reference to this buffer.

      -
    • Returns the current position of the buffer. New data will be written into the buffer starting from this position.

      Returns number

      The current write position in the buffer

      -
    • Writes a decimal value into the buffer using its binary format.

      Use it to insert into DECIMAL database columns.

      Parameters

      • name: string

        Column name.

      • unscaled: bigint | Int8Array<ArrayBufferLike>

        The unscaled integer portion of the decimal value.

        @@ -87,7 +87,7 @@
      • scale is not an integer between 0 and 76.
      • unscaled contains invalid bytes.
      -
    • Writes a decimal value into the buffer using its text format.

      Use it to insert into DECIMAL database columns.

      Parameters

      • name: string

        Column name.

      • value: string | number

        The decimal value to write.

        @@ -103,35 +103,35 @@
        • The provided string is not a valid decimal representation.
        -
    • Writes a 64-bit floating point value into the buffer. Use it to insert into DOUBLE or FLOAT database columns.

      Parameters

      • name: string

        Column name.

      • value: number

        Column value, accepts only number values. A null or undefined value omits the column entirely (stored as NULL).

      Returns SenderBuffer

      Returns with a reference to this buffer.

      -
    • Writes a 64-bit signed integer into the buffer. Use it to insert into LONG, INT, SHORT and BYTE columns.

      Parameters

      • name: string

        Column name.

      • value: number | bigint

        Column value, accepts integer or BigInt values. LONG is a 64-bit signed integer, which is wider than the safe integer range of number, so pass a BigInt beyond Number.MAX_SAFE_INTEGER to avoid losing precision. A null or undefined value omits the column entirely (stored as NULL).

      Returns SenderBuffer

      Returns with a reference to this buffer.

      Error if the value is not an integer or a BigInt

      RangeError if the value does not fit into a 64-bit signed integer

      -
    • Writes a string column with its value into the buffer. Use it to insert into VARCHAR and STRING columns.

      Parameters

      • name: string

        Column name.

      • value: string

        Column value, accepts only string values. A null or undefined value omits the column entirely (stored as NULL).

      Returns SenderBuffer

      Returns with a reference to this buffer.

      -
    • Writes a symbol name and value into the buffer. Use it to insert into SYMBOL columns.

      Parameters

      • name: string

        Symbol name.

      • value: unknown

        Symbol value, toString() is called to extract the actual symbol value from the parameter. A null or undefined value omits the symbol entirely (stored as NULL).

      Returns SenderBuffer

      Returns with a reference to this buffer.

      -
    • Writes a timestamp column and its value into the buffer.

      Use this method to insert data into TIMESTAMP or TIMESTAMP_NS columns.

      Precision rules:

        @@ -155,14 +155,14 @@

      If unit is 'ns' but value is not a BigInt.

      If unit is not one of 'ns', 'us', or 'ms'. This validation runs even when value is null or undefined.

      -
    • Returns a cropped buffer ready to send to the server, or null if there is nothing to send. The returned buffer is a copy of this buffer. It also compacts the buffer.

      Parameters

      • Optionalpos: number

        Optional position parameter

      Returns Buffer<ArrayBufferLike>

      A copy of the buffer ready to send, or null

      -
    • Returns a cropped buffer, or null if there is nothing to send. The returned buffer is backed by this buffer instance, meaning the view can change as the buffer is mutated. Used only in tests to assert the buffer's content.

      Parameters

      • Optionalpos: number

        Optional position parameter

      Returns Buffer

      A view of the buffer

      -
    +
    diff --git a/docs/interfaces/_questdb_nodejs-client.SenderTransport.html b/docs/interfaces/_questdb_nodejs-client.SenderTransport.html index bc66f11f..31ad4d17 100644 --- a/docs/interfaces/_questdb_nodejs-client.SenderTransport.html +++ b/docs/interfaces/_questdb_nodejs-client.SenderTransport.html @@ -1,18 +1,18 @@ SenderTransport | QuestDB JavaScript Client - v5.0.0

    Interface SenderTransport

    Interface for QuestDB transport implementations.
    Defines the contract for different transport protocols (HTTP/HTTPS/TCP/TCPS).

    -
    interface SenderTransport {
        close(): Promise<void>;
        connect(): Promise<boolean>;
        getDefaultAutoFlushRows(): number;
        send(data: Buffer): Promise<boolean>;
    }

    Implemented by

    Index

    Methods

    interface SenderTransport {
        close(): Promise<void>;
        connect(): Promise<boolean>;
        getDefaultAutoFlushRows(): number;
        send(data: Buffer): Promise<boolean>;
    }

    Implemented by

    Index

    Methods

    • Closes the connection to the database server. Should not be called on HTTP transports.

      Returns Promise<void>

      Promise that resolves when the connection is closed

      -
    • Establishes a connection to the database server. Should not be called on HTTP transports.

      Returns Promise<boolean>

      Promise resolving to true if connection is successful

      -
    • Sends the data to the database server.

      Parameters

      • data: Buffer

        Buffer containing the data to send

      Returns Promise<boolean>

      Promise resolving to true if data was sent successfully

      -
    +
    diff --git a/docs/modules/_questdb_nodejs-client.html b/docs/modules/_questdb_nodejs-client.html index 48342397..461bd332 100644 --- a/docs/modules/_questdb_nodejs-client.html +++ b/docs/modules/_questdb_nodejs-client.html @@ -86,6 +86,16 @@