def get_layers(self) -> List[BaseLayer]:
out = []<EOL>msg = self._event.get('<STR_LIT:message>', {})<EOL>if '<STR_LIT:text>' in msg:<EOL><INDENT>out.append(lyr.RawText(msg['<STR_LIT:text>']))<EOL><DEDENT>for attachment in msg.get('<STR_LIT>') or []:<EOL><INDENT>if attachment['<STR_LIT:type>'] == '<STR_LIT:image>':<EOL><INDENT>out.append(lyr.Image(UrlMedia(attachment['<STR_LIT>']['<STR_LIT:url>'])))<EOL><DEDENT>elif attachment['<STR_LIT:type>'] == '<STR_LIT>':<EOL><INDENT>out.append(lyr.Audio(UrlMedia(attachment['<STR_LIT>']['<STR_LIT:url>'])))<EOL><DEDENT>elif attachment['<STR_LIT:type>'] == '<STR_LIT:file>':<EOL><INDENT>out.append(lyr.File(UrlMedia(attachment['<STR_LIT>']['<STR_LIT:url>'])))<EOL><DEDENT>elif attachment['<STR_LIT:type>'] == '<STR_LIT>':<EOL><INDENT>out.append(lyr.Video(UrlMedia(attachment['<STR_LIT>']['<STR_LIT:url>'])))<EOL><DEDENT>elif attachment['<STR_LIT:type>'] == '<STR_LIT:location>':<EOL><INDENT>out.append(lyr.Location(lyr.Location.Point(<EOL>lat=attachment['<STR_LIT>']['<STR_LIT>']['<STR_LIT>'],<EOL>lon=attachment['<STR_LIT>']['<STR_LIT>']['<STR_LIT>'],<EOL>)))<EOL><DEDENT><DEDENT>if '<STR_LIT>' in msg:<EOL><INDENT>out.append(QuickReply(msg['<STR_LIT>']['<STR_LIT>']))<EOL><DEDENT>if '<STR_LIT>' in self._event:<EOL><INDENT>payload = ujson.loads(self._event['<STR_LIT>']['<STR_LIT>'])<EOL>out.append(lyr.Postback(payload))<EOL><DEDENT>if '<STR_LIT>' in self._event:<EOL><INDENT>out.append(OptIn(self._event['<STR_LIT>']['<STR_LIT>']))<EOL><DEDENT>return out<EOL>
Return all layers that can be found in the message.