def decodeBody(self, file, pdu, bodyLength):
        mandatoryParams = {}
        optionalParams = {}

        #Some PDU responses have no defined body when the status is not 0
        #    c.f. 4.1.2. "BIND_TRANSMITTER_RESP"
        #    c.f. 4.1.4. "BIND_RECEIVER_RESP"
        #    c.f. 4.4.2. SMPP PDU Definition "SUBMIT_SM_RESP"
        if pdu.commandId in (CommandId.bind_receiver_resp, CommandId.bind_transmitter_resp, CommandId.bind_transceiver_resp, CommandId.submit_sm_resp):
            if pdu.status != pdu_types.CommandStatus.ESME_ROK and pdu.noBodyOnError:
                return

        iBeforeMParams = file.tell()
        if len(pdu.mandatoryParams) > 0:
            mandatoryParams = self.decodeRequiredParams(pdu.mandatoryParams, self.getRequiredParamEncoders(pdu), file)
        iAfterMParams = file.tell()
        mParamsLen = iAfterMParams - iBeforeMParams
        if len(pdu.optionalParams) > 0:
            optionalParams = self.decodeOptionalParams(pdu.optionalParams, file, mParamsLen - bodyLength)
        pdu.params = dict(mandatoryParams.items() + optionalParams.items())
dataset/ETHPy150Open jookies/jasmin/jasmin/vendor/smpp/pdu/pdu_encoding.py/PDUEncoder.decodeBody/swapped operands of `-`