JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbrў f%c@sdZddlZdddZdddZGdd d ejZGd d d ejZGd d d ejZGdddejZddZ dS(u Python 'utf-8-sig' Codec This work similar to UTF-8 with the following changes: * On encoding/writing a UTF-8 encoded BOM will be prepended/written as the first three bytes. * On decoding/reading if the first three bytes are a UTF-8 encoded BOM, these bytes will be skipped. iNustrictcCs'tjtj||dt|fS(Ni(ucodecsuBOM_UTF8u utf_8_encodeulen(uinputuerrors((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyuencodesuencodecCsad}|ddtjkr8|dd}d}ntj||d\}}|||fS(NiiT(ucodecsuBOM_UTF8u utf_8_decodeuTrue(uinputuerrorsuprefixuoutputuconsumed((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyudecodes  udecodecBsV|EeZdZdddZd ddZddZdd Zd d Zd S(uIncrementalEncoderustrictcCs tjj||d|_dS(Ni(ucodecsuIncrementalEncoderu__init__ufirst(uselfuerrors((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyu__init__suIncrementalEncoder.__init__cCsK|jr0d|_tjtj||jdStj||jdSdS(Ni(ufirstucodecsuBOM_UTF8u utf_8_encodeuerrors(uselfuinputufinal((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyuencodes   uIncrementalEncoder.encodecCstjj|d|_dS(Ni(ucodecsuIncrementalEncoderuresetufirst(uself((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyureset'suIncrementalEncoder.resetcCs|jS(N(ufirst(uself((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyugetstate+suIncrementalEncoder.getstatecCs ||_dS(N(ufirst(uselfustate((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyusetstate.suIncrementalEncoder.setstateNF( u__name__u __module__u __qualname__u__init__uFalseuencodeuresetugetstateusetstate(u __locals__((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyuIncrementalEncoders   uIncrementalEncodercBsS|EeZdZdddZddZddZdd Zd d Zd S( uIncrementalDecoderustrictcCs tjj||d|_dS(Ni(ucodecsuBufferedIncrementalDecoderu__init__ufirst(uselfuerrors((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyu__init__2suIncrementalDecoder.__init__cCs|jrt|dkr=tjj|r1dSd|_qd|_|ddtjkrtj|dd||\}}||dfSntj|||S(Niui(ui(ufirstulenucodecsuBOM_UTF8u startswithu utf_8_decode(uselfuinputuerrorsufinaluoutputuconsumed((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyu_buffer_decode6s   %u!IncrementalDecoder._buffer_decodecCstjj|d|_dS(Ni(ucodecsuBufferedIncrementalDecoderuresetufirst(uself((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyuresetGsuIncrementalDecoder.resetcCs#tjj|}|d|jfS(Ni(ucodecsuBufferedIncrementalDecoderugetstateufirst(uselfustate((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyugetstateKsuIncrementalDecoder.getstatecCs$tjj|||d|_dS(Ni(ucodecsuBufferedIncrementalDecoderusetstateufirst(uselfustate((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyusetstatePsuIncrementalDecoder.setstateN(u__name__u __module__u __qualname__u__init__u_buffer_decodeuresetugetstateusetstate(u __locals__((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyuIncrementalDecoder1s    uIncrementalDecodercBs/|EeZdZddZdddZdS(u StreamWriterc Cs3tjj|y |`Wntk r.YnXdS(N(ucodecsu StreamWriteruresetuencodeuAttributeError(uself((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyuresetVs   uStreamWriter.resetustrictcCstj|_t||S(N(ucodecsu utf_8_encodeuencode(uselfuinputuerrors((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyuencode]s uStreamWriter.encodeN(u__name__u __module__u __qualname__uresetuencode(u __locals__((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyu StreamWriterUs u StreamWritercBs/|EeZdZddZdddZdS(u StreamReaderc Cs3tjj|y |`Wntk r.YnXdS(N(ucodecsu StreamReaderuresetudecodeuAttributeError(uself((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyuresetbs   uStreamReader.resetustrictcCst|dkr+tjj|rdSnU|ddtjkrtj|_tj|dd|\}}||dfStj|_tj||S(Niui(ui(ulenucodecsuBOM_UTF8u startswithu utf_8_decodeudecode(uselfuinputuerrorsuoutputuconsumed((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyudecodeis " uStreamReader.decodeN(u__name__u __module__u __qualname__uresetudecode(u __locals__((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyu StreamReaderas u StreamReadercCs4tjdddtdtdtdtdtdtS( Nunameu utf-8-siguencodeudecodeuincrementalencoderuincrementaldecoderu streamreaderu streamwriter(ucodecsu CodecInfouencodeudecodeuIncrementalEncoderuIncrementalDecoderu StreamReaderu StreamWriter(((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyu getregentryys u getregentry( u__doc__ucodecsuencodeudecodeuIncrementalEncoderuBufferedIncrementalDecoderuIncrementalDecoderu StreamWriteru StreamReaderu getregentry(((u8/opt/alt/python33/lib64/python3.3/encodings/utf_8_sig.pyu s $