def decode(self, file):
        repeatable = []
        nonRepeatable = {}
        headerLen = self.int8Encoder.decode(file)
        while file.tell() < headerLen + 1:
            iStart = file.tell()
            iElement = self.iEEncoder.decode(file)
            if iElement is not None:
                if self.isIdentifierRepeatable(iElement.identifier):
                    repeatable.append(iElement)
                else:
                    nonRepeatable[iElement.identifier] = iElement
                    for identifier in self.getIdentifierExclusionList(iElement.identifier):
                        if identifier in nonRepeatable:
                            del nonRepeatable[identifier]
            bytesRead = file.tell() - iStart
        return repeatable + nonRepeatable.values()
dataset/ETHPy150Open jookies/jasmin/jasmin/vendor/smpp/pdu/gsm_encoding.py/UserDataHeaderEncoder.decode/original