@iotize/tap
Version:
IoTize Device client for Javascript
294 lines • 19.6 kB
JavaScript
/**
* Generated file. Do not edit
*/
import { TapRequestFrame } from '@iotize/tap/client/api';
import * as serviceConverters from './service-converters';
import { converters as commonConverters } from '@iotize/tap/service/core';
import * as customConverters from '../custom/converter-map';
const allConverters = Object.assign(Object.assign(Object.assign({}, commonConverters), serviceConverters), customConverters);
export const SERVICE_CALLS = {
getProtocol: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/protocol',
path: '/1027//1',
responseBodyDecoder: allConverters.targetProtocol,
},
setProtocol: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/protocol',
path: '/1027//1',
bodyEncoder: allConverters.targetProtocol,
},
putProtocol: {
method: TapRequestFrame.MethodType.PUT,
pathAlias: '/target/protocol',
path: '/1027//1',
bodyEncoder: allConverters.targetProtocol,
},
getCoreType: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/core-type',
path: '/1027//2',
responseBodyDecoder: allConverters.targetCoreType,
},
putCoreType: {
method: TapRequestFrame.MethodType.PUT,
pathAlias: '/target/core-type',
path: '/1027//2',
bodyEncoder: allConverters.targetCoreType,
},
isConnected: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/connect',
path: '/1027//3',
responseBodyDecoder: allConverters.boolean,
},
connect: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/connect',
path: '/1027//3',
},
disconnect: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/disconnect',
path: '/1027//4',
},
reset: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/reset',
path: '/1027//5',
},
getFirmwareVersion: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/firmware-version',
path: '/1027//6',
responseBodyDecoder: allConverters.stringVersion,
},
putFirmwareVersion: {
method: TapRequestFrame.MethodType.PUT,
pathAlias: '/target/firmware-version',
path: '/1027//6',
bodyEncoder: allConverters.stringVersion,
},
getVcc: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/vcc',
path: '/1027//7',
responseBodyDecoder: allConverters.uint16,
},
getMinVoltage: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/min-voltage',
path: '/1027//8',
responseBodyDecoder: allConverters.uint16,
},
putMinVoltage: {
method: TapRequestFrame.MethodType.PUT,
pathAlias: '/target/min-voltage',
path: '/1027//8',
bodyEncoder: allConverters.uint16,
},
getMaxVoltage: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/max-voltage',
path: '/1027//9',
responseBodyDecoder: allConverters.uint16,
},
putMaxVoltage: {
method: TapRequestFrame.MethodType.PUT,
pathAlias: '/target/max-voltage',
path: '/1027//9',
bodyEncoder: allConverters.uint16,
},
getPageSize: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/page-size',
path: '/1027//10',
responseBodyDecoder: allConverters.uint32,
},
putPageSize: {
method: TapRequestFrame.MethodType.PUT,
pathAlias: '/target/page-size',
path: '/1027//10',
bodyEncoder: allConverters.uint32,
},
getComStats: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/com-stats',
path: '/1027//11',
responseBodyDecoder: allConverters.targetComStats,
},
clearComStats: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/com-stats',
path: '/1027//11',
},
getAvailableProtocols: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/available-protocols',
path: '/1027//20',
responseBodyDecoder: allConverters.targetProtocolArray,
},
getSerialModbusConfiguration: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/serial-modbus-configuration',
path: '/1027//21',
responseBodyDecoder: allConverters.reversedTargetSerialModbusConfiguration,
},
setSerialModbusConfiguration: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/serial-modbus-configuration',
path: '/1027//21',
bodyEncoder: allConverters.reversedTargetSerialModbusConfiguration,
},
putSerialModbusConfiguration: {
method: TapRequestFrame.MethodType.PUT,
pathAlias: '/target/serial-modbus-configuration',
path: '/1027//21',
bodyEncoder: allConverters.reversedTargetSerialModbusConfiguration,
},
getModbusDefaultSlaveAddress: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/modbus-default-slave-address',
path: '/1027//22',
responseBodyDecoder: allConverters.uint32,
},
putModbusDefaultSlaveAddress: {
method: TapRequestFrame.MethodType.PUT,
pathAlias: '/target/modbus-default-slave-address',
path: '/1027//22',
bodyEncoder: allConverters.uint32,
},
getS3PConfiguration: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/s3p-configuration',
path: '/1027//21',
responseBodyDecoder: allConverters.targetS3PProtocolConfiguration,
},
setS3PConfiguration: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/s3p-configuration',
path: '/1027//21',
bodyEncoder: allConverters.targetS3PProtocolConfiguration,
},
putS3PConfiguration: {
method: TapRequestFrame.MethodType.PUT,
pathAlias: '/target/s3p-configuration',
path: '/1027//21',
bodyEncoder: allConverters.targetS3PProtocolConfiguration,
},
getModbusTcpConfiguration: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/modbus-tcp-configuration',
path: '/1027//21',
responseBodyDecoder: allConverters.targetModbusTcpProtocolConfiguration,
},
setModbusTcpConfiguration: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/modbus-tcp-configuration',
path: '/1027//21',
bodyEncoder: allConverters.targetModbusTcpProtocolConfiguration,
},
putModbusTcpConfiguration: {
method: TapRequestFrame.MethodType.PUT,
pathAlias: '/target/modbus-tcp-configuration',
path: '/1027//21',
bodyEncoder: allConverters.targetModbusTcpProtocolConfiguration,
},
getCanConfiguration: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/can-configuration',
path: '/1027//21',
responseBodyDecoder: allConverters.targetCanProtocolConfiguration,
},
setCanConfiguration: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/can-configuration',
path: '/1027//21',
bodyEncoder: allConverters.targetCanProtocolConfiguration,
},
putCanConfiguration: {
method: TapRequestFrame.MethodType.PUT,
pathAlias: '/target/can-configuration',
path: '/1027//21',
bodyEncoder: allConverters.targetCanProtocolConfiguration,
},
postResetKeep: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/reset-keep',
path: '/1027//30',
},
readDebug: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/debug-access',
path: '/1027//31',
bodyEncoder: allConverters.uint32,
},
writeDebug: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/debug-access',
path: '/1027//31',
},
getRegisterAccess: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/register-access',
path: '/1027//32',
},
postRegisterAccess: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/register-access',
path: '/1027//32',
},
sendReceive: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/transparent/send-receive',
path: '/1027//34',
},
send: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/transparent/send',
path: '/1027//34',
},
readBytes: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/transparent/read-bytes',
path: '/1027//35',
},
modbusWrite: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/modbus/write',
path: '/1027//37',
bodyEncoder: allConverters.modbusWriteOptions,
},
modbusRead: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/modbus/read',
path: '/1027//38',
bodyEncoder: allConverters.modbusOptions,
},
getSubProtocol: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/sub-protocol',
path: '/1027//40',
responseBodyDecoder: allConverters.targetProtocol,
},
getReceivedCount: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/received-count',
path: '/1027//43',
responseBodyDecoder: allConverters.uint16,
},
readAddress: {
method: TapRequestFrame.MethodType.GET,
pathAlias: '/target/read-address',
path: '/1027//33',
bodyEncoder: allConverters.memoryInfo,
},
writeAddress: {
method: TapRequestFrame.MethodType.POST,
pathAlias: '/target/read-address',
path: '/1027//33',
bodyEncoder: allConverters.memoryWriteInfo,
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jYWxscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NlcnZpY2UvaW1wbC90YXJnZXQvc3JjL2xpYi9nZW5lcmF0ZWQvc2VydmljZS1jYWxscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQWVILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEtBQUssaUJBQWlCLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTFFLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxNQUFNLGFBQWEsaURBQ2QsZ0JBQWdCLEdBQ2hCLGlCQUFpQixHQUNqQixnQkFBZ0IsQ0FDcEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1FBQ3RDLFNBQVMsRUFBRSxrQkFBa0I7UUFDN0IsSUFBSSxFQUFFLFVBQVU7UUFDaEIsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLGNBQWM7S0FDVDtJQUUxQyxXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ3ZDLFNBQVMsRUFBRSxrQkFBa0I7UUFDN0IsSUFBSSxFQUFFLFVBQVU7UUFDaEIsV0FBVyxFQUFFLGFBQWEsQ0FBQyxjQUFjO0tBQ0Q7SUFFMUMsV0FBVyxFQUFFO1FBQ1gsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRztRQUN0QyxTQUFTLEVBQUUsa0JBQWtCO1FBQzdCLElBQUksRUFBRSxVQUFVO1FBQ2hCLFdBQVcsRUFBRSxhQUFhLENBQUMsY0FBYztLQUNEO0lBRTFDLFdBQVcsRUFBRTtRQUNYLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDdEMsU0FBUyxFQUFFLG1CQUFtQjtRQUM5QixJQUFJLEVBQUUsVUFBVTtRQUNoQixtQkFBbUIsRUFBRSxhQUFhLENBQUMsY0FBYztLQUNUO0lBRTFDLFdBQVcsRUFBRTtRQUNYLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDdEMsU0FBUyxFQUFFLG1CQUFtQjtRQUM5QixJQUFJLEVBQUUsVUFBVTtRQUNoQixXQUFXLEVBQUUsYUFBYSxDQUFDLGNBQWM7S0FDRDtJQUUxQyxXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1FBQ3RDLFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLE9BQU87S0FDVDtJQUVuQyxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ3ZDLFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsSUFBSSxFQUFFLFVBQVU7S0FDYztJQUVoQyxVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ3ZDLFNBQVMsRUFBRSxvQkFBb0I7UUFDL0IsSUFBSSxFQUFFLFVBQVU7S0FDYztJQUVoQyxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ3ZDLFNBQVMsRUFBRSxlQUFlO1FBQzFCLElBQUksRUFBRSxVQUFVO0tBQ2M7SUFFaEMsa0JBQWtCLEVBQUU7UUFDbEIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRztRQUN0QyxTQUFTLEVBQUUsMEJBQTBCO1FBQ3JDLElBQUksRUFBRSxVQUFVO1FBQ2hCLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxhQUFhO0tBQ2hCO0lBRWxDLGtCQUFrQixFQUFFO1FBQ2xCLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDdEMsU0FBUyxFQUFFLDBCQUEwQjtRQUNyQyxJQUFJLEVBQUUsVUFBVTtRQUNoQixXQUFXLEVBQUUsYUFBYSxDQUFDLGFBQWE7S0FDUjtJQUVsQyxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1FBQ3RDLFNBQVMsRUFBRSxhQUFhO1FBQ3hCLElBQUksRUFBRSxVQUFVO1FBQ2hCLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxNQUFNO0tBQ1Q7SUFFbEMsYUFBYSxFQUFFO1FBQ2IsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRztRQUN0QyxTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLElBQUksRUFBRSxVQUFVO1FBQ2hCLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxNQUFNO0tBQ1Q7SUFFbEMsYUFBYSxFQUFFO1FBQ2IsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRztRQUN0QyxTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFdBQVcsRUFBRSxhQUFhLENBQUMsTUFBTTtLQUNEO0lBRWxDLGFBQWEsRUFBRTtRQUNiLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDdEMsU0FBUyxFQUFFLHFCQUFxQjtRQUNoQyxJQUFJLEVBQUUsVUFBVTtRQUNoQixtQkFBbUIsRUFBRSxhQUFhLENBQUMsTUFBTTtLQUNUO0lBRWxDLGFBQWEsRUFBRTtRQUNiLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDdEMsU0FBUyxFQUFFLHFCQUFxQjtRQUNoQyxJQUFJLEVBQUUsVUFBVTtRQUNoQixXQUFXLEVBQUUsYUFBYSxDQUFDLE1BQU07S0FDRDtJQUVsQyxXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1FBQ3RDLFNBQVMsRUFBRSxtQkFBbUI7UUFDOUIsSUFBSSxFQUFFLFdBQVc7UUFDakIsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLE1BQU07S0FDVDtJQUVsQyxXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1FBQ3RDLFNBQVMsRUFBRSxtQkFBbUI7UUFDOUIsSUFBSSxFQUFFLFdBQVc7UUFDakIsV0FBVyxFQUFFLGFBQWEsQ0FBQyxNQUFNO0tBQ0Q7SUFFbEMsV0FBVyxFQUFFO1FBQ1gsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRztRQUN0QyxTQUFTLEVBQUUsbUJBQW1CO1FBQzlCLElBQUksRUFBRSxXQUFXO1FBQ2pCLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxjQUFjO0tBQ1Q7SUFFMUMsYUFBYSxFQUFFO1FBQ2IsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSTtRQUN2QyxTQUFTLEVBQUUsbUJBQW1CO1FBQzlCLElBQUksRUFBRSxXQUFXO0tBQ2E7SUFFaEMscUJBQXFCLEVBQUU7UUFDckIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRztRQUN0QyxTQUFTLEVBQUUsNkJBQTZCO1FBQ3hDLElBQUksRUFBRSxXQUFXO1FBQ2pCLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxtQkFBbUI7S0FDWjtJQUU1Qyw0QkFBNEIsRUFBRTtRQUM1QixNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1FBQ3RDLFNBQVMsRUFBRSxxQ0FBcUM7UUFDaEQsSUFBSSxFQUFFLFdBQVc7UUFDakIsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLHVDQUF1QztLQUNUO0lBRW5FLDRCQUE0QixFQUFFO1FBQzVCLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUk7UUFDdkMsU0FBUyxFQUFFLHFDQUFxQztRQUNoRCxJQUFJLEVBQUUsV0FBVztRQUNqQixXQUFXLEVBQUUsYUFBYSxDQUFDLHVDQUF1QztLQUNEO0lBRW5FLDRCQUE0QixFQUFFO1FBQzVCLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDdEMsU0FBUyxFQUFFLHFDQUFxQztRQUNoRCxJQUFJLEVBQUUsV0FBVztRQUNqQixXQUFXLEVBQUUsYUFBYSxDQUFDLHVDQUF1QztLQUNEO0lBRW5FLDRCQUE0QixFQUFFO1FBQzVCLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDdEMsU0FBUyxFQUFFLHNDQUFzQztRQUNqRCxJQUFJLEVBQUUsV0FBVztRQUNqQixtQkFBbUIsRUFBRSxhQUFhLENBQUMsTUFBTTtLQUNUO0lBRWxDLDRCQUE0QixFQUFFO1FBQzVCLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDdEMsU0FBUyxFQUFFLHNDQUFzQztRQUNqRCxJQUFJLEVBQUUsV0FBVztRQUNqQixXQUFXLEVBQUUsYUFBYSxDQUFDLE1BQU07S0FDRDtJQUVsQyxtQkFBbUIsRUFBRTtRQUNuQixNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1FBQ3RDLFNBQVMsRUFBRSwyQkFBMkI7UUFDdEMsSUFBSSxFQUFFLFdBQVc7UUFDakIsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLDhCQUE4QjtLQUNUO0lBRTFELG1CQUFtQixFQUFFO1FBQ25CLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUk7UUFDdkMsU0FBUyxFQUFFLDJCQUEyQjtRQUN0QyxJQUFJLEVBQUUsV0FBVztRQUNqQixXQUFXLEVBQUUsYUFBYSxDQUFDLDhCQUE4QjtLQUNEO0lBRTFELG1CQUFtQixFQUFFO1FBQ25CLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDdEMsU0FBUyxFQUFFLDJCQUEyQjtRQUN0QyxJQUFJLEVBQUUsV0FBVztRQUNqQixXQUFXLEVBQUUsYUFBYSxDQUFDLDhCQUE4QjtLQUNEO0lBRTFELHlCQUF5QixFQUFFO1FBQ3pCLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDdEMsU0FBUyxFQUFFLGtDQUFrQztRQUM3QyxJQUFJLEVBQUUsV0FBVztRQUNqQixtQkFBbUIsRUFBRSxhQUFhLENBQUMsb0NBQW9DO0tBQ1Q7SUFFaEUseUJBQXlCLEVBQUU7UUFDekIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSTtRQUN2QyxTQUFTLEVBQUUsa0NBQWtDO1FBQzdDLElBQUksRUFBRSxXQUFXO1FBQ2pCLFdBQVcsRUFBRSxhQUFhLENBQUMsb0NBQW9DO0tBQ0Q7SUFFaEUseUJBQXlCLEVBQUU7UUFDekIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRztRQUN0QyxTQUFTLEVBQUUsa0NBQWtDO1FBQzdDLElBQUksRUFBRSxXQUFXO1FBQ2pCLFdBQVcsRUFBRSxhQUFhLENBQUMsb0NBQW9DO0tBQ0Q7SUFFaEUsbUJBQW1CLEVBQUU7UUFDbkIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRztRQUN0QyxTQUFTLEVBQUUsMkJBQTJCO1FBQ3RDLElBQUksRUFBRSxXQUFXO1FBQ2pCLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyw4QkFBOEI7S0FDVDtJQUUxRCxtQkFBbUIsRUFBRTtRQUNuQixNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ3ZDLFNBQVMsRUFBRSwyQkFBMkI7UUFDdEMsSUFBSSxFQUFFLFdBQVc7UUFDakIsV0FBVyxFQUFFLGFBQWEsQ0FBQyw4QkFBOEI7S0FDRDtJQUUxRCxtQkFBbUIsRUFBRTtRQUNuQixNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1FBQ3RDLFNBQVMsRUFBRSwyQkFBMkI7UUFDdEMsSUFBSSxFQUFFLFdBQVc7UUFDakIsV0FBVyxFQUFFLGFBQWEsQ0FBQyw4QkFBOEI7S0FDRDtJQUUxRCxhQUFhLEVBQUU7UUFDYixNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ3ZDLFNBQVMsRUFBRSxvQkFBb0I7UUFDL0IsSUFBSSxFQUFFLFdBQVc7S0FDYTtJQUVoQyxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1FBQ3RDLFNBQVMsRUFBRSxzQkFBc0I7UUFDakMsSUFBSSxFQUFFLFdBQVc7UUFDakIsV0FBVyxFQUFFLGFBQWEsQ0FBQyxNQUFNO0tBQ0s7SUFFeEMsVUFBVSxFQUFFO1FBQ1YsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSTtRQUN2QyxTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLElBQUksRUFBRSxXQUFXO0tBQ2E7SUFFaEMsaUJBQWlCLEVBQUU7UUFDakIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRztRQUN0QyxTQUFTLEVBQUUseUJBQXlCO1FBQ3BDLElBQUksRUFBRSxXQUFXO0tBQ21CO0lBRXRDLGtCQUFrQixFQUFFO1FBQ2xCLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUk7UUFDdkMsU0FBUyxFQUFFLHlCQUF5QjtRQUNwQyxJQUFJLEVBQUUsV0FBVztLQUNhO0lBRWhDLFdBQVcsRUFBRTtRQUNYLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDdEMsU0FBUyxFQUFFLGtDQUFrQztRQUM3QyxJQUFJLEVBQUUsV0FBVztLQUN5QjtJQUU1QyxJQUFJLEVBQUU7UUFDSixNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ3ZDLFNBQVMsRUFBRSwwQkFBMEI7UUFDckMsSUFBSSxFQUFFLFdBQVc7S0FDeUI7SUFFNUMsU0FBUyxFQUFFO1FBQ1QsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRztRQUN0QyxTQUFTLEVBQUUsZ0NBQWdDO1FBQzNDLElBQUksRUFBRSxXQUFXO0tBQ21CO0lBRXRDLFdBQVcsRUFBRTtRQUNYLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUk7UUFDdkMsU0FBUyxFQUFFLHNCQUFzQjtRQUNqQyxJQUFJLEVBQUUsV0FBVztRQUNqQixXQUFXLEVBQUUsYUFBYSxDQUFDLGtCQUFrQjtLQUNEO0lBRTlDLFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDdEMsU0FBUyxFQUFFLHFCQUFxQjtRQUNoQyxJQUFJLEVBQUUsV0FBVztRQUNqQixXQUFXLEVBQUUsYUFBYSxDQUFDLGFBQWE7S0FDSztJQUUvQyxjQUFjLEVBQUU7UUFDZCxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1FBQ3RDLFNBQVMsRUFBRSxzQkFBc0I7UUFDakMsSUFBSSxFQUFFLFdBQVc7UUFDakIsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLGNBQWM7S0FDVDtJQUUxQyxnQkFBZ0IsRUFBRTtRQUNoQixNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1FBQ3RDLFNBQVMsRUFBRSx3QkFBd0I7UUFDbkMsSUFBSSxFQUFFLFdBQVc7UUFDakIsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLE1BQU07S0FDVDtJQUVsQyxXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1FBQ3RDLFNBQVMsRUFBRSxzQkFBc0I7UUFDakMsSUFBSSxFQUFFLFdBQVc7UUFDakIsV0FBVyxFQUFFLGFBQWEsQ0FBQyxVQUFVO0tBQ0s7SUFFNUMsWUFBWSxFQUFFO1FBQ1osTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSTtRQUN2QyxTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLElBQUksRUFBRSxXQUFXO1FBQ2pCLFdBQVcsRUFBRSxhQUFhLENBQUMsZUFBZTtLQUNEO0NBQzVDLENBQUMifQ==