JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr YfW@swdZdddgZddlZddlmZddZdd dZd dd dZdddd d ZdS)z1Various types of useful iterators and generators.body_line_iteratortyped_subpart_iteratorwalkN)StringIOccs;|V|jr7x#|jD]}|jEdHqWdS)zWalk over the message tree, yielding each subpart. The walk is performed in depth-first order. This method is a generator. N) is_multipart get_payloadr)selfsubpartr 4/opt/alt/python35/lib64/python3.5/email/iterators.pyrs FccsKxD|jD]6}|jd|}t|tr t|EdHq WdS)zIterate over the parts, returning string payloads line-by-line. Optional decode (default False) is passed through to .get_payload(). decodeN)rr isinstancestrr)msgr r Zpayloadr r r r"stextccsPxI|jD];}|j|kr |dksC|j|kr |Vq WdS)zIterate over the subparts with a given MIME type. Use `maintype' as the main MIME type to match against; this defaults to "text". Optional `subtype' is the MIME subtype to match against; if omitted, only the main type is matched. N)rZget_content_maintypeZget_content_subtype)rZmaintypesubtyper r r r r-scCs|dkrtj}d|d}t||jddd||rftd|jd|n td||jrx+|jD]}t|||d|qWdS) zA handy debugging aidN endfilez [%s])sysstdoutprintZget_content_typeZget_default_typerr _structure)rfplevelZinclude_defaultZtabr r r r r;s     r) __doc____all__riorrrrrr r r r s